mirror of
https://github.com/fluencelabs/redis
synced 2025-03-30 22:31:03 +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. */
|
/* Ask the master to stop sending diffs. */
|
||||||
write(server.aof_pipe_write_ack_to_parent,"!",1);
|
if (write(server.aof_pipe_write_ack_to_parent,"!",1) != 1) goto werr;
|
||||||
if (read(server.aof_pipe_read_ack_from_parent,&byte,1) != 1 ||
|
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;
|
byte != '!') goto werr;
|
||||||
|
redisLog(REDIS_NOTICE,"Parent agreed to stop sending diffs. Finalizing AOF...");
|
||||||
|
|
||||||
/* Read the final diff if any. */
|
/* Read the final diff if any. */
|
||||||
aofReadDiffFromParent();
|
aofReadDiffFromParent();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user