diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c index d53ee1dcb3048df824d81ea2a6d5f4660f89d6de..8b81009c7f11c5844afd661ee0275f70a6a60198 100644 --- a/src/slurmctld/job_mgr.c +++ b/src/slurmctld/job_mgr.c @@ -4391,6 +4391,10 @@ extern void job_completion_logger(struct job_record *job_ptr) int base_state; xassert(job_ptr); + /* make sure all parts of the job are notified */ + srun_job_complete(job_ptr); + + /* mail out notifications of completion */ base_state = job_ptr->job_state & (~JOB_COMPLETING); if ((base_state == JOB_COMPLETE) || (base_state == JOB_CANCELLED)) { if (job_ptr->mail_type & MAIL_JOB_END) @@ -4400,9 +4404,9 @@ extern void job_completion_logger(struct job_record *job_ptr) mail_job_info(job_ptr, MAIL_JOB_FAIL); } + /* write out to logs */ jobacct_storage_g_job_complete(job_ptr); g_slurm_jobcomp_write(job_ptr); - srun_job_complete(job_ptr); } /* diff --git a/src/slurmctld/srun_comm.c b/src/slurmctld/srun_comm.c index c86175fcee952247604fe3b8a959ea8b339d2504..795bde02d882dd31423e76b86806dcdd4ff09499 100644 --- a/src/slurmctld/srun_comm.c +++ b/src/slurmctld/srun_comm.c @@ -208,11 +208,11 @@ extern void srun_timeout (struct job_record *job_ptr) srun_timeout_msg_t *msg_arg; ListIterator step_iterator; struct step_record *step_ptr; - + xassert(job_ptr); if (job_ptr->job_state != JOB_RUNNING) return; - + if (job_ptr->other_port && job_ptr->alloc_node && job_ptr->resp_host) { addr = xmalloc(sizeof(struct sockaddr_in)); slurm_set_addr(addr, job_ptr->other_port, job_ptr->resp_host);