Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions opal/mca/pmix/pmix2x/pmix2x.c
Original file line number Diff line number Diff line change
Expand Up @@ -219,10 +219,12 @@ static void _event_hdlr(int sd, short args, void *cbdata)
opal_output_verbose(2, opal_pmix_base_framework.framework_output,
"%s _EVENT_HDLR CALLING EVHDLR",
OPAL_NAME_PRINT(OPAL_PROC_MY_NAME));
event->handler(cd->status, &cd->pname,
cd->info, &cd->results,
return_local_event_hdlr, (void*)cd);
return;
if (NULL != event->handler) {
event->handler(cd->status, &cd->pname,
cd->info, &cd->results,
return_local_event_hdlr, (void*)cd);
return;
}
}
}
/* if we didn't find a match, we still have to call their final callback */
Expand Down
23 changes: 22 additions & 1 deletion orte/mca/odls/base/odls_base_default_fns.c
Original file line number Diff line number Diff line change
Expand Up @@ -279,6 +279,7 @@ int orte_odls_base_default_construct_child_list(opal_buffer_t *buffer,
int rc;
orte_std_cntr_t cnt;
orte_job_t *jdata=NULL, *daemons;
orte_node_t *node;
int32_t n, k;
opal_buffer_t *bptr;
orte_proc_t *pptr, *dmn;
Expand Down Expand Up @@ -436,7 +437,8 @@ int orte_odls_base_default_construct_child_list(opal_buffer_t *buffer,
/* not ready for use yet */
continue;
}
if (!orte_get_attribute(&jdata->attributes, ORTE_JOB_FULLY_DESCRIBED, NULL, OPAL_BOOL)) {
if (!ORTE_PROC_IS_HNP &&
orte_get_attribute(&jdata->attributes, ORTE_JOB_FULLY_DESCRIBED, NULL, OPAL_BOOL)) {
/* the parser will have already made the connection, but the fully described
* case won't have done it, so connect the proc to its node here */
opal_output_verbose(5, orte_odls_base_framework.framework_output,
Expand All @@ -457,6 +459,17 @@ int orte_odls_base_default_construct_child_list(opal_buffer_t *buffer,
}
OBJ_RETAIN(dmn->node);
pptr->node = dmn->node;
/* add the node to the job map, if needed */
if (!ORTE_FLAG_TEST(pptr->node, ORTE_NODE_FLAG_MAPPED)) {
OBJ_RETAIN(pptr->node);
opal_pointer_array_add(jdata->map->nodes, pptr->node);
jdata->map->num_nodes++;
ORTE_FLAG_SET(pptr->node, ORTE_NODE_FLAG_MAPPED);
}
/* add this proc to that node */
OBJ_RETAIN(pptr);
opal_pointer_array_add(pptr->node->procs, pptr);
pptr->node->num_procs++;
}
/* see if it belongs to us */
if (pptr->parent == ORTE_PROC_MY_NAME->vpid) {
Expand Down Expand Up @@ -485,6 +498,14 @@ int orte_odls_base_default_construct_child_list(opal_buffer_t *buffer,
ORTE_FLAG_SET(app, ORTE_APP_FLAG_USED_ON_NODE);
}
}
if (orte_get_attribute(&jdata->attributes, ORTE_JOB_FULLY_DESCRIBED, NULL, OPAL_BOOL)) {
/* reset the mapped flags */
for (n=0; n < jdata->map->nodes->size; n++) {
if (NULL != (node = (orte_node_t*)opal_pointer_array_get_item(jdata->map->nodes, n))) {
ORTE_FLAG_UNSET(node, ORTE_NODE_FLAG_MAPPED);
}
}
}

if (!orte_get_attribute(&jdata->attributes, ORTE_JOB_FULLY_DESCRIBED, NULL, OPAL_BOOL)) {
/* compute and save bindings of local children */
Expand Down