From ff3712f94cd0144a8ba2489b49f409ae9cf69e92 Mon Sep 17 00:00:00 2001 From: Morris Jette <jette@schedmd.com> Date: Tue, 29 Jul 2014 14:21:07 -0700 Subject: [PATCH] Capture min and max exit code for job arrays --- src/slurmctld/job_mgr.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c index 5c3e775813c..5ae5c03c343 100644 --- a/src/slurmctld/job_mgr.c +++ b/src/slurmctld/job_mgr.c @@ -10969,6 +10969,29 @@ extern void job_completion_logger(struct job_record *job_ptr, bool requeue) } } + if (job_ptr->array_task_id != NO_VAL) { + struct job_record *base_job_ptr; + base_job_ptr = find_job_record(job_ptr->array_job_id); + if (base_job_ptr->array_recs) { + if (base_job_ptr->array_recs->tot_comp_tasks == 0) { + base_job_ptr->array_recs->min_exit_code = + job_ptr->exit_code; + base_job_ptr->array_recs->max_exit_code = + job_ptr->exit_code; + } else { + base_job_ptr->array_recs->min_exit_code = + MIN(job_ptr->exit_code, base_job_ptr-> + array_recs->min_exit_code); + base_job_ptr->array_recs->max_exit_code = + MAX(job_ptr->exit_code, base_job_ptr-> + array_recs->max_exit_code); + } + if (base_job_ptr->array_recs->tot_run_tasks) + base_job_ptr->array_recs->tot_run_tasks--; + base_job_ptr->array_recs->tot_comp_tasks++; + } + } + g_slurm_jobcomp_write(job_ptr); /* When starting the resized job everything is taken care of -- GitLab