mirror of
https://github.com/fluencelabs/redis
synced 2025-06-14 17:51:21 +00:00
Refuse writes if can't persist on disk.
Redis now refuses accepting write queries if RDB persistence is configured, but RDB snapshots can't be generated for some reason. The status of the latest background save operation is now exposed in the INFO output as well. This fixes issue #90.
This commit is contained in:
@ -656,6 +656,7 @@ int rdbSave(char *filename) {
|
||||
redisLog(REDIS_NOTICE,"DB saved on disk");
|
||||
server.dirty = 0;
|
||||
server.lastsave = time(NULL);
|
||||
server.lastbgsave_status = REDIS_OK;
|
||||
return REDIS_OK;
|
||||
|
||||
werr:
|
||||
@ -1061,12 +1062,15 @@ void backgroundSaveDoneHandler(int exitcode, int bysignal) {
|
||||
"Background saving terminated with success");
|
||||
server.dirty = server.dirty - server.dirty_before_bgsave;
|
||||
server.lastsave = time(NULL);
|
||||
server.lastbgsave_status = REDIS_OK;
|
||||
} else if (!bysignal && exitcode != 0) {
|
||||
redisLog(REDIS_WARNING, "Background saving error");
|
||||
server.lastbgsave_status = REDIS_ERR;
|
||||
} else {
|
||||
redisLog(REDIS_WARNING,
|
||||
"Background saving terminated by signal %d", bysignal);
|
||||
rdbRemoveTempFile(server.rdb_child_pid);
|
||||
server.lastbgsave_status = REDIS_ERR;
|
||||
}
|
||||
server.rdb_child_pid = -1;
|
||||
/* Possibly there are slaves waiting for a BGSAVE in order to be served
|
||||
|
Reference in New Issue
Block a user