networking: flushSlavesOutputBuffers bugfix

This commit is contained in:
zhaozhao.zz
2019-09-25 11:49:12 +02:00
committed by antirez
parent c1ccf0f188
commit 495dd0da54
+2 -4
View File
@@ -2143,7 +2143,6 @@ void flushSlavesOutputBuffers(void) {
listRewind(server.slaves,&li);
while((ln = listNext(&li))) {
client *slave = listNodeValue(ln);
int events;
/* Note that the following will not flush output buffers of slaves
* in STATE_ONLINE but having put_online_on_ack set to true: in this
@@ -2151,9 +2150,8 @@ void flushSlavesOutputBuffers(void) {
* of put_online_on_ack is to postpone the moment it is installed.
* This is what we want since slaves in this state should not receive
* writes before the first ACK. */
events = aeGetFileEvents(server.el,slave->fd);
if (events & AE_WRITABLE &&
slave->replstate == SLAVE_STATE_ONLINE &&
if (slave->replstate == SLAVE_STATE_ONLINE &&
!slave->repl_put_online_on_ack &&
clientHasPendingReplies(slave))
{
writeToClient(slave->fd,slave,0);