Fix a race in processChanges/trackChanges with rdbLoadRio by acquiring the lock when trackChanges is set

This commit is contained in:
John Sully 2022-08-22 03:37:32 +00:00
parent 23f92fa94c
commit fce669e1ac

View File

@ -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;
}