From dcad2693aff9db8b23aac7da585f60094bba9c76 Mon Sep 17 00:00:00 2001 From: Morris Jette <jette@schedmd.com> Date: Tue, 15 Jul 2014 11:34:34 -0700 Subject: [PATCH] Job array depdenecy fixes --- src/slurmctld/job_mgr.c | 10 ++++++++++ src/slurmctld/job_scheduler.c | 3 +-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c index 04982cbb9e0..136052e8371 100644 --- a/src/slurmctld/job_mgr.c +++ b/src/slurmctld/job_mgr.c @@ -2264,6 +2264,16 @@ extern struct job_record *find_job_array_rec(uint32_t array_job_id, } job_ptr = job_ptr->job_array_next_t; } + /* Look for job record with all of the pending tasks */ + job_ptr = find_job_record(array_job_id); + if (job_ptr->array_recs && job_ptr->array_recs->task_id_bitmap){ + inx = bit_size(job_ptr->array_recs->task_id_bitmap); + if ((array_task_id < inx) && + bit_test(job_ptr->array_recs->task_id_bitmap, + array_task_id)) { + return job_ptr; + } + } return NULL; /* None found */ } } diff --git a/src/slurmctld/job_scheduler.c b/src/slurmctld/job_scheduler.c index c4aa640f8d5..ee322385902 100644 --- a/src/slurmctld/job_scheduler.c +++ b/src/slurmctld/job_scheduler.c @@ -1889,8 +1889,7 @@ extern int test_job_dependency(struct job_record *job_ptr) depend_iter = list_iterator_create(job_ptr->details->depend_list); while ((dep_ptr = list_next(depend_iter))) { bool clear_dep = false; - if (dep_ptr->array_task_id == INFINITE) { - /* Advance to latest element of this job array */ + if (dep_ptr->array_task_id != NO_VAL) { dep_ptr->job_ptr = find_job_array_rec(dep_ptr->job_id, dep_ptr->array_task_id); } -- GitLab