From fce669e1ac1578fe3f119bb2ff972ae2af505697 Mon Sep 17 00:00:00 2001 From: John Sully Date: Mon, 22 Aug 2022 03:37:32 +0000 Subject: [PATCH] Fix a race in processChanges/trackChanges with rdbLoadRio by acquiring the lock when trackChanges is set --- src/server.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/server.cpp b/src/server.cpp index fc5680d28..4ba9e73f5 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -3021,8 +3021,11 @@ void afterSleep(struct aeEventLoop *eventLoop) { serverAssert(serverTL->gcEpoch.isReset()); serverTL->gcEpoch = g_pserver->garbageCollector.startEpoch(); + + aeAcquireLock(); for (int idb = 0; idb < cserver.dbnum; ++idb) g_pserver->db[idb]->trackChanges(false); + aeReleaseLock(); serverTL->disable_async_commands = false; }