From: Martin Schwenke Date: Fri, 30 Nov 2018 01:44:26 +0000 (+1100) Subject: ctdb-daemon: Exit with error if a database directory does not exist X-Git-Tag: tdb-1.3.17~529 X-Git-Url: http://git.samba.org/?a=commitdiff_plain;h=dd7574afd1b2fb6a88defa154bc3d15e94f9ce0d;p=samba.git 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 --- 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",