diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c index 363f93b72c58b52578b089aa7f1067d3f0bb2236..2cbe0c1337da419cc383355d6c1fc27cf943c0ef 100644 --- a/src/slurmctld/job_mgr.c +++ b/src/slurmctld/job_mgr.c @@ -3822,8 +3822,6 @@ extern int job_limits_check(struct job_record **job_pptr) job_ptr->job_id); fail_reason = WAIT_QOS_THRES; } - } else if (job_ptr->priority == 0) { /* user or administrator hold */ - fail_reason = WAIT_HELD; } return (fail_reason); diff --git a/src/slurmctld/node_scheduler.c b/src/slurmctld/node_scheduler.c index 5a49059d152ad87e1934fca930f951c7cc370c69..24379126e1da45fa1349f0417dea8ca2c5ce5d8f 100644 --- a/src/slurmctld/node_scheduler.c +++ b/src/slurmctld/node_scheduler.c @@ -1241,18 +1241,19 @@ extern int select_nodes(struct job_record *job_ptr, bool test_only, job_ptr->job_id, job_ptr->partition); } + if (job_ptr->priority == 0) { /* user/admin hold */ + if ((job_ptr->state_reason != WAIT_HELD) && + (job_ptr->state_reason != WAIT_HELD_USER)) { + job_ptr->state_reason = WAIT_HELD; + } + return ESLURM_JOB_HELD; + } + /* Confirm that partition is up and has compatible nodes limits */ fail_reason = job_limits_check(&job_ptr); if (fail_reason != WAIT_NO_REASON) { last_job_update = now; xfree(job_ptr->state_desc); - if (job_ptr->priority == 0) { /* user/admin hold */ - if ((job_ptr->state_reason != WAIT_HELD) && - (job_ptr->state_reason != WAIT_HELD_USER)) { - job_ptr->state_reason = WAIT_HELD; - } - return ESLURM_JOB_HELD; - } job_ptr->state_reason = fail_reason; return ESLURM_REQUESTED_PART_CONFIG_UNAVAILABLE; }