From b5d988a403d13911fa22f9301a24b86756a8294e Mon Sep 17 00:00:00 2001
From: Morris Jette <jette@schedmd.com>
Date: Thu, 16 Jul 2015 10:15:57 -0700
Subject: [PATCH] Prevent a job array task_id being set to NO_VAL

Under some conditions if an attempt to schedule the last task of
  a job array (the meta-record of the job array) fails, it's
  task ID will be changed from the appropriate value to NO_VAL.
bug 1790
---
 src/slurmctld/node_scheduler.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/slurmctld/node_scheduler.c b/src/slurmctld/node_scheduler.c
index 6048e7a92e1..ba5edadaf07 100644
--- a/src/slurmctld/node_scheduler.c
+++ b/src/slurmctld/node_scheduler.c
@@ -1917,7 +1917,8 @@ extern int select_nodes(struct job_record *job_ptr, bool test_only,
 
       cleanup:
 	if (job_ptr->array_recs && job_ptr->array_recs->task_id_bitmap &&
-	    !IS_JOB_STARTED(job_ptr)) {
+	    !IS_JOB_STARTED(job_ptr) &&
+	    (bit_ffs(job_ptr->array_recs->task_id_bitmap) != -1)) {
 		job_ptr->array_task_id = NO_VAL;
 	}
 	if (preemptee_job_list)
-- 
GitLab