diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c index 8124b6c3467446995c7356365e83644117a82c72..c42d806cf5a9057209deae9cb760ebcc0988999e 100644 --- a/src/slurmctld/job_mgr.c +++ b/src/slurmctld/job_mgr.c @@ -5520,8 +5520,11 @@ _copy_job_desc_to_job_record(job_desc_msg_t * job_desc, } if (job_desc->contiguous != (uint16_t) NO_VAL) detail_ptr->contiguous = job_desc->contiguous; - if (job_desc->core_spec != (uint16_t) NO_VAL) + if (job_desc->core_spec != (uint16_t) NO_VAL) { detail_ptr->core_spec = job_desc->core_spec; + if (job_desc->core_spec) + detail_ptr->whole_node = 1; + } if (job_desc->task_dist != (uint16_t) NO_VAL) detail_ptr->task_dist = job_desc->task_dist; if (job_desc->cpus_per_task != (uint16_t) NO_VAL) diff --git a/src/slurmctld/node_scheduler.c b/src/slurmctld/node_scheduler.c index 5c5a74d9c8c8d62aa193d580c8b60bf3f5a09b45..fe2cfc7dbb72fab77a5d57f6b8819f39b969f008 100644 --- a/src/slurmctld/node_scheduler.c +++ b/src/slurmctld/node_scheduler.c @@ -695,7 +695,8 @@ _resolve_shared_status(struct job_record *job_ptr, uint16_t part_max_share, return 1; if (cons_res_flag) { - if (job_ptr->details->share_res == 0) + if ((job_ptr->details->share_res != 1) || /* 0 or NO_VAL */ + (job_ptr->details->whole_node == 1)) return 0; return 1; } else {