From d9a244c34c40aaefa79048fe02ca251ad413f682 Mon Sep 17 00:00:00 2001 From: John Sully Date: Sat, 28 Sep 2019 17:38:46 -0400 Subject: [PATCH] finish up the RDB fuzz Former-commit-id: 0942188b0a263d4b7de013458e5a65dc2d3b206a --- src/server.cpp | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/server.cpp b/src/server.cpp index 96e1cc0f2..fda6d5db7 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -5206,6 +5206,20 @@ int main(int argc, char **argv) { #endif moduleLoadFromQueue(); ACLLoadUsersAtStartup(); + + // special case of FUZZING load from stdin then quit + if (strstr(argv[0],"keydb-fuzz-rdb") != NULL) + { + serverAssert(GlobalLocksAcquired()); + rio rdb; + rdbSaveInfo rsi = RDB_SAVE_INFO_INIT; + startLoading(stdin); + rioInitWithFile(&rdb,stdin); + rdbLoadRio(&rdb,&rsi,0); + stopLoading(); + return EXIT_SUCCESS; + } + loadDataFromDisk(); if (g_pserver->cluster_enabled) { if (verifyClusterConfigWithData() == C_ERR) { @@ -5242,11 +5256,7 @@ int main(int argc, char **argv) { aeReleaseLock(); //Finally we can dump the lock moduleReleaseGIL(true); - - // If we're just fuzzing then we've already loaded the RDB so just quit successfully - if (strstr(argv[0],"keydb-fuzz-rdb") != NULL) - return EXIT_SUCCESS; - + serverAssert(cserver.cthreads > 0 && cserver.cthreads <= MAX_EVENT_LOOPS); pthread_t rgthread[MAX_EVENT_LOOPS]; for (int iel = 0; iel < cserver.cthreads; ++iel)