1
1

Fix a segfault when a topology file is given to use in place of the one detected by mpirun itself. In that situation, the rmaps framework replaces the opal_hwloc_topology structure - but since that occurs *after* mpirun has set the node->topology field, we lose that definition. So don't set the node->topology field until after the rmaps framework has been opened.

Does not need to go to 1.7 branch as that ordering is different.

-This line, and those below, will be ignored--

M    orte/mca/ess/hnp/ess_hnp_module.c

This commit was SVN r29225.
Этот коммит содержится в:
Ralph Castain 2013-09-21 19:47:41 +00:00
родитель 01839db11b
Коммит 400c68ed0f

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

@ -380,8 +380,6 @@ static int rte_init(void)
node->name = strdup(orte_process_info.nodename);
node->index = opal_pointer_array_set_item(orte_node_pool, 0, node);
#if OPAL_HAVE_HWLOC
/* point our topology to the one detected locally */
node->topology = opal_hwloc_topology;
/* add it to the array of known topologies */
opal_pointer_array_add(orte_node_topologies, opal_hwloc_topology);
#endif
@ -501,7 +499,12 @@ static int rte_init(void)
error = "orte_rmaps_base_find_available";
goto error;
}
/* if a topology file was given, then the rmaps framework open
* will have reset our topology. Ensure we always get the right
* one by setting our node topology afterwards
*/
node->topology = opal_hwloc_topology;
/* Open/select the odls */
if (ORTE_SUCCESS != (ret = mca_base_framework_open(&orte_odls_base_framework, 0))) {
ORTE_ERROR_LOG(ret);