MCPcopy Create free account
hub / github.com/Snapchat/KeyDB / backgroundSaveDoneHandlerSocket

Function backgroundSaveDoneHandlerSocket

src/rdb.cpp:3621–3649  ·  view source on GitHub ↗

A background saving child (BGSAVE) terminated its work. Handle this. * This function covers the case of RDB -> Slaves socket transfers for * diskless replication. */

Source from the content-addressed store, hash-verified

3619 * This function covers the case of RDB -> Slaves socket transfers for
3620 * diskless replication. */
3621static void backgroundSaveDoneHandlerSocket(int exitcode, bool fCancelled) {
3622 serverAssert(GlobalLocksAcquired());
3623
3624 if (!fCancelled && exitcode == 0) {
3625 serverLog(LL_NOTICE,
3626 "Background RDB transfer terminated with success");
3627 } else if (!fCancelled && exitcode != 0) {
3628 serverLog(LL_WARNING, "Background transfer error");
3629 } else {
3630 serverLog(LL_WARNING,
3631 "Background transfer terminated cancelled");
3632 }
3633 if (g_pserver->rdb_child_exit_pipe!=-1)
3634 close(g_pserver->rdb_child_exit_pipe);
3635 auto pipeT = g_pserver->rdb_pipe_read;
3636 aePostFunction(g_pserver->rgthreadvar[IDX_EVENT_LOOP_MAIN].el, [pipeT]{
3637 aeDeleteFileEvent(serverTL->el, pipeT, AE_READABLE);
3638 close(pipeT);
3639 });
3640 g_pserver->rdb_child_exit_pipe = -1;
3641 g_pserver->rdb_pipe_read = -1;
3642 zfree(g_pserver->rdb_pipe_conns);
3643 g_pserver->rdb_pipe_conns = NULL;
3644 g_pserver->rdb_pipe_numconns = 0;
3645 g_pserver->rdb_pipe_numconns_writing = 0;
3646 zfree(g_pserver->rdb_pipe_buff);
3647 g_pserver->rdb_pipe_buff = NULL;
3648 g_pserver->rdb_pipe_bufflen = 0;
3649}
3650
3651/* When a background RDB saving/transfer terminates, call the right handler. */
3652void backgroundSaveDoneHandler(int exitcode, bool fCancelled) {

Callers 1

Calls 5

GlobalLocksAcquiredFunction · 0.85
serverLogFunction · 0.85
aePostFunctionFunction · 0.85
aeDeleteFileEventFunction · 0.85
zfreeFunction · 0.85

Tested by

no test coverage detected