diff --git a/src/common/cbuf.c b/src/common/cbuf.c
index 6c14b0fd5402f2c0d708d2adc72acb3660e7961e..dc31118eef95eb61210d5f00e1ab3ad709e1a1ff 100644
--- a/src/common/cbuf.c
+++ b/src/common/cbuf.c
@@ -71,6 +71,7 @@
 	{
 		fprintf(log_fp(), "ERROR: [%s:%d] %s: %s\n",
 			file, line, mesg, strerror(errno));
+		fflush(log_fp());
 	}
 #  endif /* !lsd_fatal_error */
 #endif /* !WITH_LSD_FATAL_ERROR_FUNC */
@@ -89,6 +90,7 @@
 	{
 		fprintf(log_fp(), "ERROR: [%s:%d] %s: %s\n",
 			file, line, mesg, strerror(errno));
+		fflush(log_fp());
 		abort();
 		return NULL;
 	}
diff --git a/src/common/hostlist.c b/src/common/hostlist.c
index 230a8a3887c0e2a6981ae1c9cd7850e26475e19a..1c34628850d69e3bdea9c2b6e55ca526b24711d4 100644
--- a/src/common/hostlist.c
+++ b/src/common/hostlist.c
@@ -150,6 +150,7 @@ extern void lsd_fatal_error(char *file, int line, char *mesg);
 	{
 		fprintf(log_fp(), "ERROR: [%s:%d] %s: %s\n",
 			file, line, mesg, strerror(errno));
+		fflush(log_fp());
 	}
 #  endif /* !lsd_fatal_error */
 #endif /* !WITH_LSD_FATAL_ERROR_FUNC */
@@ -166,6 +167,7 @@ extern void * lsd_nomem_error(char *file, int line, char *mesg);
 	{
 		fprintf(log_fp(), "ERROR: [%s:%d] %s: %s\n",
 			file, line, mesg, strerror(errno));
+		fflush(log_fp());
 		abort();
 		return NULL;
 	}
diff --git a/src/common/list.c b/src/common/list.c
index 0fb7fbe2b256f02d5a76d6e33e2c0ebb408f26e0..30b0fb0a180611180d9ab7b577355912fb53b29c 100644
--- a/src/common/list.c
+++ b/src/common/list.c
@@ -101,6 +101,7 @@ strong_alias(list_install_fork_handlers, slurm_list_install_fork_handlers);
 	{
 		fprintf(log_fp(), "ERROR: [%s:%d] %s: %s\n",
 			file, line, mesg, strerror(errno));
+		fflush(log_fp());
 	}
 #  endif /* !lsd_fatal_error */
 #endif /* !WITH_LSD_FATAL_ERROR_FUNC */
@@ -118,6 +119,7 @@ strong_alias(list_install_fork_handlers, slurm_list_install_fork_handlers);
 	{
 		fprintf(log_fp(), "ERROR: [%s:%d] %s: %s\n",
 			file, line, mesg, strerror(errno));
+		fflush(log_fp());
 		abort();
 		return NULL;
 	}
diff --git a/src/slurmctld/controller.c b/src/slurmctld/controller.c
index f216d2aa495b7f078ec0872ac401e5177de81f10..285f0ed005329630aaf8dc5c52e5122fcb42dcea 100644
--- a/src/slurmctld/controller.c
+++ b/src/slurmctld/controller.c
@@ -1924,6 +1924,7 @@ void update_logging(void)
 	int rc;
 	uid_t slurm_user_id  = slurmctld_conf.slurm_user_id;
 	gid_t slurm_user_gid = gid_from_uid(slurm_user_id);
+	char *log_fname = NULL;
 
 	/* Preserve execute line arguments (if any) */
 	if (debug_level) {
@@ -1943,13 +1944,13 @@ void update_logging(void)
 
 	if (daemonize) {
 		log_opts.stderr_level = LOG_LEVEL_QUIET;
-		if (slurmctld_conf.slurmctld_logfile)
+		if (slurmctld_conf.slurmctld_logfile) {
 			log_opts.syslog_level = LOG_LEVEL_FATAL;
+			log_fname = slurmctld_conf.slurmctld_logfile;
+		}
 	} else
 		log_opts.syslog_level = LOG_LEVEL_QUIET;
-
-	log_alter(log_opts, SYSLOG_FACILITY_DAEMON,
-		  slurmctld_conf.slurmctld_logfile);
+	log_alter(log_opts, SYSLOG_FACILITY_DAEMON, log_fname);
 
 	/*
 	 * SchedLogLevel restore
diff --git a/src/slurmd/slurmd/slurmd.c b/src/slurmd/slurmd/slurmd.c
index 132e124bd1d8cb57b73ab6d95f4ced396e6d8e6f..45b15af584c3ea4a2611f589d4d13d0bddd6ba5f 100644
--- a/src/slurmd/slurmd/slurmd.c
+++ b/src/slurmd/slurmd/slurmd.c
@@ -1700,6 +1700,7 @@ static void _update_logging(void)
 {
 	log_options_t *o = &conf->log_opts;
 	slurm_ctl_conf_t *cf;
+	char *log_fname = NULL;
 
 	/*
 	 * Initialize debug level if not already set
@@ -1723,12 +1724,14 @@ static void _update_logging(void)
 	 */
 	if (conf->daemonize) {
 		o->stderr_level = LOG_LEVEL_QUIET;
-		if (conf->logfile)
+		if (conf->logfile) {
 			o->syslog_level = LOG_LEVEL_FATAL;
+			log_fname = conf->logfile;
+		}
 	} else
 		o->syslog_level  = LOG_LEVEL_QUIET;
 
-	log_alter(conf->log_opts, SYSLOG_FACILITY_DAEMON, conf->logfile);
+	log_alter(conf->log_opts, SYSLOG_FACILITY_DAEMON, log_fname);
 }
 
 /* Reset slurmd nice value */
diff --git a/src/slurmdbd/slurmdbd.c b/src/slurmdbd/slurmdbd.c
index 5513f01707e487cf49886df7bfba7d3588ffb9a4..e9736598e6b426e745e1b85a6de81ec4e51d6a45 100644
--- a/src/slurmdbd/slurmdbd.c
+++ b/src/slurmdbd/slurmdbd.c
@@ -365,6 +365,8 @@ static void _usage(char *prog_name)
 /* Reset slurmctld logging based upon configuration parameters */
 static void _update_logging(bool startup)
 {
+	char *log_fname = NULL;
+
 	/* Preserve execute line arguments (if any) */
 	if (debug_level) {
 		slurmdbd_conf->debug_level = MIN(
@@ -380,11 +382,13 @@ static void _update_logging(bool startup)
 		log_opts.syslog_level = LOG_LEVEL_QUIET;
 	else {
 		log_opts.stderr_level = LOG_LEVEL_QUIET;
-		if (slurmdbd_conf->log_file)
+		if (slurmdbd_conf->log_file) {
 			log_opts.syslog_level = LOG_LEVEL_QUIET;
+			log_fname = slurmdbd_conf->log_file;
+		}
 	}
 
-	log_alter(log_opts, SYSLOG_FACILITY_DAEMON, slurmdbd_conf->log_file);
+	log_alter(log_opts, SYSLOG_FACILITY_DAEMON, log_fname);
 	if (startup && slurmdbd_conf->log_file) {
 		int rc;
 		gid_t slurm_user_gid;