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;