diff --git a/src/slurmctld/job_scheduler.c b/src/slurmctld/job_scheduler.c index 4bebe57da049272e6e7d9fcbec5bf84e453d4cf0..b087b0d7742bd7d1d6323446fff37a8db0ed96aa 100644 --- a/src/slurmctld/job_scheduler.c +++ b/src/slurmctld/job_scheduler.c @@ -727,6 +727,7 @@ extern int schedule(uint32_t job_limit) job_queue_rec_t *job_queue_rec; struct job_record *job_ptr = NULL; struct part_record *part_ptr, **failed_parts = NULL; + struct part_record *skip_part_ptr = NULL; struct slurmctld_resv **failed_resv = NULL; bitstr_t *save_avail_node_bitmap; struct part_record **sched_part_ptr = NULL; @@ -1006,8 +1007,11 @@ next_part: part_ptr = (struct part_record *) break; } if (skip_job) { - debug("sched: reacked partition %s job limit", - job_ptr->part_ptr->name); + if (job_ptr->part_ptr == skip_part_ptr) + continue; + debug2("sched: reached partition %s job limit", + job_ptr->part_ptr->name); + skip_part_ptr = job_ptr->part_ptr; continue; } }