generalize config file check for sentinel (#8730)
The implications of this change is just that in the past when a config file was missing, in some cases it was exiting before printing the sever startup prints and sometimes after, and now it'll always exit before printing them.
This commit is contained in:
parent
e5d50b236c
commit
d5935bb0a4
@ -549,14 +549,12 @@ void initSentinel(void) {
|
|||||||
server.sentinel_config = NULL;
|
server.sentinel_config = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This function gets called when the server is in Sentinel mode, started,
|
/* This function is for checking whether sentinel config file has been set,
|
||||||
* loaded the configuration, and is ready for normal operations. */
|
* also checking whether we have write permissions. */
|
||||||
void sentinelIsRunning(void) {
|
void sentinelCheckConfigFile(void) {
|
||||||
int j;
|
|
||||||
|
|
||||||
if (server.configfile == NULL) {
|
if (server.configfile == NULL) {
|
||||||
serverLog(LL_WARNING,
|
serverLog(LL_WARNING,
|
||||||
"Sentinel started without a config file. Exiting...");
|
"Sentinel needs config file on disk to save state. Exiting...");
|
||||||
exit(1);
|
exit(1);
|
||||||
} else if (access(server.configfile,W_OK) == -1) {
|
} else if (access(server.configfile,W_OK) == -1) {
|
||||||
serverLog(LL_WARNING,
|
serverLog(LL_WARNING,
|
||||||
@ -564,6 +562,12 @@ void sentinelIsRunning(void) {
|
|||||||
server.configfile,strerror(errno));
|
server.configfile,strerror(errno));
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* This function gets called when the server is in Sentinel mode, started,
|
||||||
|
* loaded the configuration, and is ready for normal operations. */
|
||||||
|
void sentinelIsRunning(void) {
|
||||||
|
int j;
|
||||||
|
|
||||||
/* If this Sentinel has yet no ID set in the configuration file, we
|
/* If this Sentinel has yet no ID set in the configuration file, we
|
||||||
* pick a random one and persist the config on disk. From now on this
|
* pick a random one and persist the config on disk. From now on this
|
||||||
|
@ -6247,7 +6247,6 @@ int main(int argc, char **argv) {
|
|||||||
server.exec_argv[1] = zstrdup(server.configfile);
|
server.exec_argv[1] = zstrdup(server.configfile);
|
||||||
j = 2; // Skip this arg when parsing options
|
j = 2; // Skip this arg when parsing options
|
||||||
}
|
}
|
||||||
|
|
||||||
while(j < argc) {
|
while(j < argc) {
|
||||||
/* Either first or last argument - Should we read config from stdin? */
|
/* Either first or last argument - Should we read config from stdin? */
|
||||||
if (argv[j][0] == '-' && argv[j][1] == '\0' && (j == 1 || j == argc-1)) {
|
if (argv[j][0] == '-' && argv[j][1] == '\0' && (j == 1 || j == argc-1)) {
|
||||||
@ -6270,16 +6269,11 @@ int main(int argc, char **argv) {
|
|||||||
j++;
|
j++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (server.sentinel_mode && ! server.configfile) {
|
|
||||||
serverLog(LL_WARNING,
|
|
||||||
"Sentinel needs config file on disk to save state. Exiting...");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
loadServerConfig(server.configfile, config_from_stdin, options);
|
loadServerConfig(server.configfile, config_from_stdin, options);
|
||||||
if (server.sentinel_mode) loadSentinelConfigFromQueue();
|
if (server.sentinel_mode) loadSentinelConfigFromQueue();
|
||||||
sdsfree(options);
|
sdsfree(options);
|
||||||
}
|
}
|
||||||
|
if (server.sentinel_mode) sentinelCheckConfigFile();
|
||||||
server.supervised = redisIsSupervised(server.supervised_mode);
|
server.supervised = redisIsSupervised(server.supervised_mode);
|
||||||
int background = server.daemonize && !server.supervised;
|
int background = server.daemonize && !server.supervised;
|
||||||
if (background) daemonize();
|
if (background) daemonize();
|
||||||
|
@ -2404,6 +2404,7 @@ const char *sentinelHandleConfiguration(char **argv, int argc);
|
|||||||
void queueSentinelConfig(sds *argv, int argc, int linenum, sds line);
|
void queueSentinelConfig(sds *argv, int argc, int linenum, sds line);
|
||||||
void loadSentinelConfigFromQueue(void);
|
void loadSentinelConfigFromQueue(void);
|
||||||
void sentinelIsRunning(void);
|
void sentinelIsRunning(void);
|
||||||
|
void sentinelCheckConfigFile(void);
|
||||||
|
|
||||||
/* redis-check-rdb & aof */
|
/* redis-check-rdb & aof */
|
||||||
int redis_check_rdb(char *rdbfilename, FILE *fp);
|
int redis_check_rdb(char *rdbfilename, FILE *fp);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user