From 42143ac654db18fb35d36fc3f04ab4cd61ed8846 Mon Sep 17 00:00:00 2001 From: John Sully Date: Fri, 12 Jul 2019 02:13:37 -0400 Subject: [PATCH] FIX: The dabase count configuration is not respected Former-commit-id: 149c3cf3dd75e8058c7c560d6a7ffbbb95da3898 --- src/server.cpp | 28 ++++++++++++++-------------- tests/unit/other.tcl | 7 +++++++ 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/src/server.cpp b/src/server.cpp index 4d2735467..fa03b6efc 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -2495,20 +2495,6 @@ void initServerConfig(void) { /* Multithreading */ cserver.cthreads = CONFIG_DEFAULT_THREADS; cserver.fThreadAffinity = CONFIG_DEFAULT_THREAD_AFFINITY; - - g_pserver->db = (redisDb*)zmalloc(sizeof(redisDb)*cserver.dbnum, MALLOC_LOCAL); - - /* Create the Redis databases, and initialize other internal state. */ - for (int j = 0; j < cserver.dbnum; j++) { - g_pserver->db[j].pdict = dictCreate(&dbDictType,NULL); - g_pserver->db[j].expires = dictCreate(&keyptrDictType,NULL); - g_pserver->db[j].blocking_keys = dictCreate(&keylistDictType,NULL); - g_pserver->db[j].ready_keys = dictCreate(&objectKeyPointerValueDictType,NULL); - g_pserver->db[j].watched_keys = dictCreate(&keylistDictType,NULL); - g_pserver->db[j].id = j; - g_pserver->db[j].avg_ttl = 0; - g_pserver->db[j].defrag_later = listCreate(); - } } extern char **environ; @@ -2914,6 +2900,20 @@ void initServer(void) { fastlock_init(&g_pserver->flock); + g_pserver->db = (redisDb*)zmalloc(sizeof(redisDb)*cserver.dbnum, MALLOC_LOCAL); + + /* Create the Redis databases, and initialize other internal state. */ + for (int j = 0; j < cserver.dbnum; j++) { + g_pserver->db[j].pdict = dictCreate(&dbDictType,NULL); + g_pserver->db[j].expires = dictCreate(&keyptrDictType,NULL); + g_pserver->db[j].blocking_keys = dictCreate(&keylistDictType,NULL); + g_pserver->db[j].ready_keys = dictCreate(&objectKeyPointerValueDictType,NULL); + g_pserver->db[j].watched_keys = dictCreate(&keylistDictType,NULL); + g_pserver->db[j].id = j; + g_pserver->db[j].avg_ttl = 0; + g_pserver->db[j].defrag_later = listCreate(); + } + if (g_pserver->syslog_enabled) { openlog(g_pserver->syslog_ident, LOG_PID | LOG_NDELAY | LOG_NOWAIT, g_pserver->syslog_facility); diff --git a/tests/unit/other.tcl b/tests/unit/other.tcl index 965902456..a0bbba0c5 100644 --- a/tests/unit/other.tcl +++ b/tests/unit/other.tcl @@ -1,3 +1,10 @@ +start_server {tags {"other"} overrides {databases 64}} { + test {CONF-DATABASES - ensure the databases config option is respected} { + r select 63 + r set testkey {foo} + } {OK} +} + start_server {tags {"other"}} { if {$::force_failure} { # This is used just for test suite development purposes.