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.
Этот коммит содержится в:
родитель
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);
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user