From dd7574afd1b2fb6a88defa154bc3d15e94f9ce0d Mon Sep 17 00:00:00 2001 From: Martin Schwenke Date: Fri, 30 Nov 2018 12:44:26 +1100 Subject: [PATCH 1/1] ctdb-daemon: Exit with error if a database directory does not exist Since 4.9.0, the log messages can be confusing if a required database directory does not exist. Explicitly check for database directories, logging a clear error and exiting if one is missing. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13696 Signed-off-by: Martin Schwenke Reviewed-by: Amitay Isaacs Autobuild-User(master): Amitay Isaacs Autobuild-Date(master): Mon Dec 3 06:56:41 CET 2018 on sn-devel-144 --- ctdb/server/ctdbd.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/ctdb/server/ctdbd.c b/ctdb/server/ctdbd.c index a2870d0d111..7e71d6e8272 100644 --- a/ctdb/server/ctdbd.c +++ b/ctdb/server/ctdbd.c @@ -311,8 +311,28 @@ int main(int argc, const char *argv[]) */ ctdb->db_directory = ctdb_config.dbdir_volatile; + ok = directory_exist(ctdb->db_directory); + if (! ok) { + D_ERR("Volatile database directory %s does not exist\n", + ctdb->db_directory); + goto fail; + } + ctdb->db_directory_persistent = ctdb_config.dbdir_persistent; + ok = directory_exist(ctdb->db_directory_persistent); + if (! ok) { + D_ERR("Persistent database directory %s does not exist\n", + ctdb->db_directory_persistent); + goto fail; + } + ctdb->db_directory_state = ctdb_config.dbdir_state; + ok = directory_exist(ctdb->db_directory_state); + if (! ok) { + D_ERR("State database directory %s does not exist\n", + ctdb->db_directory_state); + goto fail; + } if (ctdb_config.lock_debug_script != NULL) { ret = setenv("CTDB_DEBUG_LOCKS", -- 2.34.1