From 607283f17386732da20931bc5423e622171459d2 Mon Sep 17 00:00:00 2001
From: jette <jette@schedmd.com>
Date: Sun, 20 Apr 2014 19:24:14 -0700
Subject: [PATCH] Job array dependency fix

If a job is submitted that is dependent upon a job array in which
the first task of that array is already purged from slurmctld, then
find another element of that array and properly handle the dependency.
---
 src/slurmctld/job_scheduler.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/slurmctld/job_scheduler.c b/src/slurmctld/job_scheduler.c
index cc7bb89015a..a0023425fed 100644
--- a/src/slurmctld/job_scheduler.c
+++ b/src/slurmctld/job_scheduler.c
@@ -1975,6 +1975,10 @@ extern int update_job_dependency(struct job_record *job_ptr, char *new_depend)
 			/* old format, just a single job_id */
 			if (array_task_id == NO_VAL) {
 				dep_job_ptr = find_job_record(job_id);
+				if (!dep_job_ptr) {
+					dep_job_ptr = find_job_array_rec(job_id,
+								      INFINITE);
+				}
 				if (dep_job_ptr &&
 				    (dep_job_ptr->array_job_id == job_id) &&
 				    (dep_job_ptr->array_task_id != NO_VAL)) {
@@ -2041,6 +2045,10 @@ extern int update_job_dependency(struct job_record *job_ptr, char *new_depend)
 			}
 			if (array_task_id == NO_VAL) {
 				dep_job_ptr = find_job_record(job_id);
+				if (!dep_job_ptr) {
+					dep_job_ptr = find_job_array_rec(job_id,
+								      INFINITE);
+				}		
 				if (dep_job_ptr &&
 				    (dep_job_ptr->array_job_id == job_id) &&
 				    (dep_job_ptr->array_task_id != NO_VAL)) {
-- 
GitLab