diff --git a/NEWS b/NEWS index 2799eb56dfaa11a5d9463690f3829f07824c97c9..37d2b4b4f2ec27b4dc4904a69a643c802bf024fe 100644 --- a/NEWS +++ b/NEWS @@ -5,8 +5,6 @@ documents those changes that are of interest to users and admins. ============================= -- Added Prolog and Epilog Guide (web page). Based upon work by Jason Sollom, Cray Inc. and used by permission. - -- Fix bug in allocating resources with Shared=NO and gang scheduling. - Preemptor was not being scheduled. Fix bugzilla #3. * Changes in SLURM 2.5.0.pre3 ============================= diff --git a/src/plugins/select/cons_res/job_test.c b/src/plugins/select/cons_res/job_test.c index 44a80e8afc32eb7e08618a22191d2a7421ed94a7..e250086b73d38482cee69da20fa167f4ae2dc17b 100644 --- a/src/plugins/select/cons_res/job_test.c +++ b/src/plugins/select/cons_res/job_test.c @@ -2165,6 +2165,19 @@ extern int cr_job_test(struct job_record *job_ptr, bitstr_t *bitmap, } goto alloc_job; } + + if (job_node_req == NODE_CR_ONE_ROW) { + /* This job CANNOT share CPUs regardless of priority, + * so we fail here. Note that Shared=EXCLUSIVE was already + * addressed in _verify_node_state() and job preemption + * removes jobs from simulated resource allocation map + * before this point. */ + if (select_debug_flags & DEBUG_FLAG_CPU_BIND) { + info("cons_res: cr_job_test: test 1 fail - " + "no idle resources available"); + } + goto alloc_job; + } if (select_debug_flags & DEBUG_FLAG_CPU_BIND) { info("cons_res: cr_job_test: test 1 fail - " "not enough idle resources"); diff --git a/src/plugins/select/serial/job_test.c b/src/plugins/select/serial/job_test.c index f8ed71a3aa0dfccd9d6588c67b42ec13ad0ca893..eb9a9f75f6894563c3a01474ed81ecae769c8d66 100644 --- a/src/plugins/select/serial/job_test.c +++ b/src/plugins/select/serial/job_test.c @@ -600,6 +600,19 @@ extern int cr_job_test(struct job_record *job_ptr, bitstr_t *bitmap, int mode, } goto alloc_job; } + + if (job_node_req == NODE_CR_ONE_ROW) { + /* This job CANNOT share CPUs regardless of priority, + * so we fail here. Note that Shared=EXCLUSIVE was already + * addressed in _verify_node_state() and job preemption + * removes jobs from simulated resource allocation map + * before this point. */ + if (select_debug_flags & DEBUG_FLAG_CPU_BIND) { + info("select/serial: cr_job_test: test 1 fail - " + "no idle resources available"); + } + goto alloc_job; + } if (select_debug_flags & DEBUG_FLAG_CPU_BIND) { info("select/serial: cr_job_test: test 1 fail - " "not enough idle resources");