diff --git a/ompi/mca/pubsub/orte/pubsub_orte.c b/ompi/mca/pubsub/orte/pubsub_orte.c index 9b7a83fa5d..135104fa9b 100644 --- a/ompi/mca/pubsub/orte/pubsub_orte.c +++ b/ompi/mca/pubsub/orte/pubsub_orte.c @@ -60,7 +60,6 @@ static bool server_setup=false; static void setup_server(void) { opal_buffer_t buf; - orte_rml_cmd_flag_t cmd=ORTE_RML_UPDATE_CMD; /* irrelevant - will be ignored */ int rc; OPAL_OUTPUT_VERBOSE((1, ompi_pubsub_base_output, @@ -84,7 +83,6 @@ static void setup_server(void) * info into a buffer */ OBJ_CONSTRUCT(&buf, opal_buffer_t); - opal_dss.pack(&buf, &cmd, 1, ORTE_RML_CMD); opal_dss.pack(&buf, &mca_pubsub_orte_component.server_uri, 1, OPAL_STRING); /* extract the server's name so we have its jobid */ if (ORTE_SUCCESS != (rc = orte_rml_base_parse_uris(mca_pubsub_orte_component.server_uri, diff --git a/orte/mca/routed/binomial/routed_binomial.c b/orte/mca/routed/binomial/routed_binomial.c index ba94333ce8..152140785c 100644 --- a/orte/mca/routed/binomial/routed_binomial.c +++ b/orte/mca/routed/binomial/routed_binomial.c @@ -321,10 +321,18 @@ static orte_process_name_t get_route(orte_process_name_t *target) goto found; } - /* if I am a tool, the route is direct */ + /* if I am a tool, the route is direct if target is in + * my own job family, and to the target's HNP if not + */ if (ORTE_PROC_IS_TOOL) { - ret = target; - goto found; + if (ORTE_JOB_FAMILY(target->jobid) == ORTE_JOB_FAMILY(ORTE_PROC_MY_NAME->jobid)) { + ret = target; + goto found; + } else { + ORTE_HNP_NAME_FROM_JOB(&daemon, target->jobid); + ret = &daemon; + goto found; + } } /****** HNP AND DAEMONS ONLY ******/