mirror of
https://github.com/fluencelabs/redis
synced 2025-03-17 16:10:50 +00:00
Use a timeout when reading parent ack from AOF child.
This commit is contained in:
parent
2fa9fb647f
commit
75ef41058d
10
src/aof.c
10
src/aof.c
@ -1040,9 +1040,15 @@ int rewriteAppendOnlyFile(char *filename) {
|
||||
}
|
||||
|
||||
/* Ask the master to stop sending diffs. */
|
||||
write(server.aof_pipe_write_ack_to_parent,"!",1);
|
||||
if (read(server.aof_pipe_read_ack_from_parent,&byte,1) != 1 ||
|
||||
if (write(server.aof_pipe_write_ack_to_parent,"!",1) != 1) goto werr;
|
||||
if (anetNonBlock(NULL,server.aof_pipe_read_ack_from_parent) != ANET_OK)
|
||||
goto werr;
|
||||
/* We read the ACK from the server using a 10 seconds timeout. Normally
|
||||
* it should reply ASAP, but just in case we lose its reply, we are sure
|
||||
* the child will eventually get terminated. */
|
||||
if (syncRead(server.aof_pipe_read_ack_from_parent,&byte,1,5000) != 1 ||
|
||||
byte != '!') goto werr;
|
||||
redisLog(REDIS_NOTICE,"Parent agreed to stop sending diffs. Finalizing AOF...");
|
||||
|
||||
/* Read the final diff if any. */
|
||||
aofReadDiffFromParent();
|
||||
|
Loading…
x
Reference in New Issue
Block a user