diff --git a/NEWS b/NEWS index 76418cd46a4913c9b14934b6518f758168959d90..843c3a9786584314d14f00211363ec94d8bcb16c 100644 --- a/NEWS +++ b/NEWS @@ -205,6 +205,8 @@ documents those changes that are of interest to users and admins. -- Fix bug in cray/srun wrapper stdin/out/err file handling. -- In cray/srun wrapper, only include aprun "-q" option when srun "--quiet" option is used. + -- BLUEGENE - fix issue where if a small block was in error it could hold up + the queue when trying to place a larger than midplane job. * Changes in SLURM 2.3.3 ======================== diff --git a/src/plugins/select/bluegene/bg_dynamic_block.c b/src/plugins/select/bluegene/bg_dynamic_block.c index 2ed633f8326a3154bc81b8c3fa8044e6f154b62a..82c7372087541de77bb7c4400c601b750a8eca03 100644 --- a/src/plugins/select/bluegene/bg_dynamic_block.c +++ b/src/plugins/select/bluegene/bg_dynamic_block.c @@ -383,12 +383,15 @@ extern List create_dynamic_block(List block_list, this midplane that have jobs running. */ while ((found_record = list_next(itr2))) { - if (!found_record->free_cnt - && ((found_record->job_running - != NO_JOB_RUNNING) - || (found_record->job_list - && list_count( - found_record->job_list))) + /* Don't check free_cnt here since + if this block shares the same + midplane it will automatically be + -1. So just look for running jobs. + */ + if (((found_record->job_running + != NO_JOB_RUNNING) + || (found_record->job_list + && list_count(found_record->job_list))) && bit_overlap(bg_record->mp_bitmap, found_record->mp_bitmap)) { found = 1;