1
1

coll/ml: fix a case not correctly handled by r31071

In r31071 I modified the logic to not increment the hierarchy level if
no processes were selected by that sbgp. That fixed a problem seen on
systems where we don't support process binding. The problem is there
is a case where we actually did select processes yet the number of
selected processes is 0. We need to increment the hierarchy in this case
as well.

This should fix the segmentation fault found by recent MTT runs. Once
this is committed to 1.7.5 remove the .ompi_ignore's from coll/ml and
bcol/ptpcoll. Tested with ompi-tests/ibm.

cmr=v1.7.5:reviewer=rhc

This commit was SVN r31081.

The following SVN revision numbers were found above:
  r31071 --> open-mpi/ompi@1911d97044
Этот коммит содержится в:
Nathan Hjelm 2014-03-15 22:37:28 +00:00
родитель b248b27637
Коммит f92579dce5

Просмотреть файл

@ -1970,7 +1970,8 @@ static int mca_coll_ml_tree_hierarchy_discovery(mca_coll_ml_module_t *ml_module,
if ((1 == n_procs_selected) && n_remain > 1) {
OBJ_RELEASE(module);
n_procs_selected = 0;
/* at least one process was sselected at this level. increment the hierarchy */
i_hier++;
}
if( 0 < n_procs_selected ) {
@ -2056,6 +2057,7 @@ static int mca_coll_ml_tree_hierarchy_discovery(mca_coll_ml_module_t *ml_module,
bcol_cli = (mca_base_component_list_item_t *) opal_list_get_next((opal_list_item_t *) bcol_cli);
if (n_remain != n_procs_in) {
/* do not increment the hierarchy if no processes were selected at this level */
i_hier++;
/* The way initialization is currently written *all* ranks MUST appear