mirror of
https://github.com/fluencelabs/redis
synced 2025-06-17 19:21:21 +00:00
Merge branch 'unstable' into fixChildInfoPipeFdLeak
This commit is contained in:
@ -263,7 +263,7 @@ void replicationFeedSlaves(list *slaves, int dictid, robj **argv, int argc) {
|
||||
* or are already in sync with the master. */
|
||||
|
||||
/* Add the multi bulk length. */
|
||||
addReplyMultiBulkLen(slave,argc);
|
||||
addReplyArrayLen(slave,argc);
|
||||
|
||||
/* Finally any additional argument that was not stored inside the
|
||||
* static buffer if any (from j to argc). */
|
||||
@ -296,7 +296,7 @@ void replicationFeedSlavesFromMasterStream(list *slaves, char *buf, size_t bufle
|
||||
|
||||
/* Don't feed slaves that are still waiting for BGSAVE to start */
|
||||
if (slave->replstate == SLAVE_STATE_WAIT_BGSAVE_START) continue;
|
||||
addReplyString(slave,buf,buflen);
|
||||
addReplyProto(slave,buf,buflen);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1080,6 +1080,7 @@ void replicationCreateMasterClient(int fd, int dbid) {
|
||||
server.master->authenticated = 1;
|
||||
server.master->reploff = server.master_initial_offset;
|
||||
server.master->read_reploff = server.master->reploff;
|
||||
server.master->user = NULL; /* This client can do everything. */
|
||||
memcpy(server.master->replid, server.master_replid,
|
||||
sizeof(server.master_replid));
|
||||
/* If master offset is set to -1, this master is old and is not
|
||||
@ -1256,6 +1257,7 @@ void readSyncBulkPayload(aeEventLoop *el, int fd, void *privdata, int mask) {
|
||||
kill(server.rdb_child_pid,SIGUSR1);
|
||||
rdbRemoveTempFile(server.rdb_child_pid);
|
||||
closeChildInfoPipe();
|
||||
updateDictResizePolicy();
|
||||
}
|
||||
|
||||
if (rename(server.repl_transfer_tmpfile,server.rdb_filename) == -1) {
|
||||
@ -2063,10 +2065,10 @@ void roleCommand(client *c) {
|
||||
void *mbcount;
|
||||
int slaves = 0;
|
||||
|
||||
addReplyMultiBulkLen(c,3);
|
||||
addReplyArrayLen(c,3);
|
||||
addReplyBulkCBuffer(c,"master",6);
|
||||
addReplyLongLong(c,server.master_repl_offset);
|
||||
mbcount = addDeferredMultiBulkLength(c);
|
||||
mbcount = addReplyDeferredLen(c);
|
||||
listRewind(server.slaves,&li);
|
||||
while((ln = listNext(&li))) {
|
||||
client *slave = ln->value;
|
||||
@ -2078,17 +2080,17 @@ void roleCommand(client *c) {
|
||||
slaveip = ip;
|
||||
}
|
||||
if (slave->replstate != SLAVE_STATE_ONLINE) continue;
|
||||
addReplyMultiBulkLen(c,3);
|
||||
addReplyArrayLen(c,3);
|
||||
addReplyBulkCString(c,slaveip);
|
||||
addReplyBulkLongLong(c,slave->slave_listening_port);
|
||||
addReplyBulkLongLong(c,slave->repl_ack_off);
|
||||
slaves++;
|
||||
}
|
||||
setDeferredMultiBulkLength(c,mbcount,slaves);
|
||||
setDeferredArrayLen(c,mbcount,slaves);
|
||||
} else {
|
||||
char *slavestate = NULL;
|
||||
|
||||
addReplyMultiBulkLen(c,5);
|
||||
addReplyArrayLen(c,5);
|
||||
addReplyBulkCBuffer(c,"slave",5);
|
||||
addReplyBulkCString(c,server.masterhost);
|
||||
addReplyLongLong(c,server.masterport);
|
||||
@ -2117,7 +2119,7 @@ void replicationSendAck(void) {
|
||||
|
||||
if (c != NULL) {
|
||||
c->flags |= CLIENT_MASTER_FORCE_REPLY;
|
||||
addReplyMultiBulkLen(c,3);
|
||||
addReplyArrayLen(c,3);
|
||||
addReplyBulkCString(c,"REPLCONF");
|
||||
addReplyBulkCString(c,"ACK");
|
||||
addReplyBulkLongLong(c,c->reploff);
|
||||
|
Reference in New Issue
Block a user