diff --git a/src/plugins/sched/backfill/backfill.c b/src/plugins/sched/backfill/backfill.c index 39b4770dfd1ea3bff4a7a78fe3760ef911109068..010fb3b939fba86455a4a4a560fa3ee3903eb372 100644 --- a/src/plugins/sched/backfill/backfill.c +++ b/src/plugins/sched/backfill/backfill.c @@ -2502,9 +2502,10 @@ skip_start: if (is_job_array_head && (job_ptr->array_task_id != NO_VAL)) { /* Try starting next task of job array */ + job_record_t *tmp = job_ptr; job_ptr = find_job_record(job_ptr-> array_job_id); - if (job_ptr && + if (job_ptr && (job_ptr != tmp) && IS_JOB_PENDING(job_ptr) && (bb_g_job_test_stage_in( job_ptr, false) == 1)) diff --git a/src/slurmctld/job_scheduler.c b/src/slurmctld/job_scheduler.c index 6597707127e533a0e27f9e2a402c90d9a5c30996..dabf26321016bd887e5c2e7532d4a20019d26274 100644 --- a/src/slurmctld/job_scheduler.c +++ b/src/slurmctld/job_scheduler.c @@ -1842,8 +1842,10 @@ skip_start: if (is_job_array_head && (job_ptr->array_task_id != NO_VAL)) { /* Try starting another task of the job array */ + job_record_t *tmp = job_ptr; job_ptr = find_job_record(job_ptr->array_job_id); - if (job_ptr && IS_JOB_PENDING(job_ptr) && + if (job_ptr && (job_ptr != tmp) && + IS_JOB_PENDING(job_ptr) && (bb_g_job_test_stage_in(job_ptr,false) ==1)) goto next_task; }