diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c index 966a700fc743817eee2c42f36a9318320dc93d87..7d3423e4bf84217e4e7676ca1e0b37dd6968873a 100644 --- a/src/slurmctld/job_mgr.c +++ b/src/slurmctld/job_mgr.c @@ -5142,7 +5142,7 @@ extern int job_complete(uint32_t job_id, uid_t uid, bool requeue, job_ptr->requid = uid; } else if ((job_return_code & 0xff) == SIG_OOM) { job_ptr->job_state = JOB_OOM | job_comp_flag; - job_ptr->exit_code = job_return_code & 0xffffff00; + job_ptr->exit_code = SIG_OOM; job_ptr->state_reason = FAIL_OOM; xfree(job_ptr->state_desc); } else if (WIFEXITED(job_return_code) && diff --git a/src/slurmctld/step_mgr.c b/src/slurmctld/step_mgr.c index f4d1c83b324cded61c15b049e2ea26c29ee2ac6a..4474ed22a7823af3c0b4c74277d0aef87a7137da 100644 --- a/src/slurmctld/step_mgr.c +++ b/src/slurmctld/step_mgr.c @@ -251,7 +251,7 @@ static void _internal_step_complete(struct job_record *job_ptr, return; if ((step_ptr->step_id != SLURM_EXTERN_CONT) && - ((step_ptr->exit_code & SIG_OOM) || + ((step_ptr->exit_code == SIG_OOM) || (step_ptr->exit_code > job_ptr->derived_ec))) job_ptr->derived_ec = step_ptr->exit_code; @@ -3426,7 +3426,7 @@ extern int step_partial_comp(step_complete_msg_t *req, uid_t uid, */ req->range_last = nodes - 1; #endif - if ((req->step_rc & SIG_OOM) || + if ((req->step_rc == SIG_OOM) || (req->step_rc > step_ptr->exit_code)) step_ptr->exit_code = req->step_rc; }