diff --git a/src/plugins/select/bluegene/select_bluegene.c b/src/plugins/select/bluegene/select_bluegene.c index a4a4b84a4707a41482587bc6cae2738a0fb0ec19..69bbb0adba6f8bce94dc768da0ff47ff03ec8ce4 100644 --- a/src/plugins/select/bluegene/select_bluegene.c +++ b/src/plugins/select/bluegene/select_bluegene.c @@ -2899,18 +2899,32 @@ extern int select_p_fail_cnode(struct step_record *step_ptr) itr2 = list_iterator_create(bg_record->ba_mp_list); while ((found_ba_mp = (ba_mp_t *)list_next(itr2))) { - if (!found_ba_mp->used - || !bit_test(step_ptr->step_node_bitmap, - found_ba_mp->index)) + if (!found_ba_mp->used) continue; + if (!bit_test(step_ptr->step_node_bitmap, + found_ba_mp->index)) { + /* Make sure we get the count of this midplane + even if it isn't in this particular step. + */ + bg_record->cnode_err_cnt += bit_set_count( + found_ba_mp->cnode_err_bitmap); + continue; + } + /* perhaps this block isn't involved in this error */ if (jobinfo->units_avail && found_ba_mp->cnode_usable_bitmap && bit_overlap(found_ba_mp->cnode_usable_bitmap, - ba_mp->cnode_err_bitmap)) + ba_mp->cnode_err_bitmap)) { + /* Make sure we get the count of this midplane + even if it isn't in this particular step. + */ + bg_record->cnode_err_cnt += bit_set_count( + found_ba_mp->cnode_err_bitmap); continue; + } if (!found_ba_mp->cnode_err_bitmap) found_ba_mp->cnode_err_bitmap =