diff --git a/NEWS b/NEWS index 488478f2809e0c37debf16f3ac56e5514039b6f6..483a21b0385afb1cb423048b2c9ff3ea0c596647 100644 --- a/NEWS +++ b/NEWS @@ -263,6 +263,7 @@ documents those changes that are of interest to users and administrators. -- Remove logic that was creating GRES bitmap for node when not needed (only needed when GRES mapped to specific files). -- BLUEGENE - Fix sinfo -tr before it would only print idle nodes correctly. + -- Fix for licenses_only reservation on bluegene systems. * Changes in Slurm 14.03.8 ========================== diff --git a/src/slurmctld/reservation.c b/src/slurmctld/reservation.c index 3fc99bd26df70301ce508f8f0cf4119b31e42378..9e85c167083192d40d5092b3a02d332f873a8aff 100644 --- a/src/slurmctld/reservation.c +++ b/src/slurmctld/reservation.c @@ -3538,6 +3538,11 @@ static bitstr_t *_pick_idle_node_cnt(bitstr_t *avail_bitmap, (resv_desc_ptr->flags & RESERVE_FLAG_IGN_JOBS)) { return select_g_resv_test(resv_desc_ptr, node_cnt, avail_bitmap, core_bitmap); + } else if ((node_cnt == 0) && + ((resv_desc_ptr->core_cnt == NULL) || + (resv_desc_ptr->core_cnt[0] == 0)) && + (resv_desc_ptr->flags & RESERVE_FLAG_LIC_ONLY)) { + return bit_alloc(bit_size(avail_bitmap)); } orig_bitmap = bit_copy(avail_bitmap); @@ -4545,19 +4550,21 @@ static void _set_nodes_flags(slurmctld_resv_t *resv_ptr, time_t now, struct node_record *node_ptr; if (!resv_ptr->node_bitmap) { - error("_set_nodes_flags: reservation %s lacks a bitmap", - resv_ptr->name); + error("%s: reservation %s lacks a bitmap", + __func__, resv_ptr->name); return; } i_first = bit_ffs(resv_ptr->node_bitmap); if (i_first < 0) { - error("_set_nodes_flags: reservation %s includes no nodes", - resv_ptr->name); + if ((resv_ptr->flags & RESERVE_FLAG_LIC_ONLY) == 0) { + error("%s: reservation %s includes no nodes", + __func__, resv_ptr->name); + } return; } i_last = bit_fls(resv_ptr->node_bitmap); - for (i=i_first; i<=i_last; i++) { + for (i = i_first; i <= i_last; i++) { if (!bit_test(resv_ptr->node_bitmap, i)) continue;