diff --git a/3rd-party/openpmix b/3rd-party/openpmix index 08e41ed5629..707920c99de 160000 --- a/3rd-party/openpmix +++ b/3rd-party/openpmix @@ -1 +1 @@ -Subproject commit 08e41ed5629b51832f5708181af6d89218c7a74e +Subproject commit 707920c99de946a5c3a1850da457340f38c0caf2 diff --git a/3rd-party/prrte b/3rd-party/prrte index 30cadc6746e..f6f5c181c1d 160000 --- a/3rd-party/prrte +++ b/3rd-party/prrte @@ -1 +1 @@ -Subproject commit 30cadc6746ebddd69ea42ca78b964398f782e4e3 +Subproject commit f6f5c181c1dec317c31f61effd73f960ce2eac25 diff --git a/ompi/dpm/dpm.c b/ompi/dpm/dpm.c index 4b5dbf623e1..5616c91b422 100644 --- a/ompi/dpm/dpm.c +++ b/ompi/dpm/dpm.c @@ -436,14 +436,18 @@ int ompi_dpm_connect_accept(ompi_communicator_t *comm, int root, opal_list_remove_item(&ilist, (opal_list_item_t*)cd); // TODO: do we need to release cd ? OBJ_RELEASE(cd); /* ompi_proc_complete_init_single() initializes and optionally retrieves - * OPAL_PMIX_LOCALITY and OPAL_PMIX_HOSTNAME. since we can live without - * them, we are just fine */ + * OPAL_PMIX_LOCALITY and OPAL_PMIX_HOSTNAME. + */ ompi_proc_complete_init_single(proc); /* if this proc is local, then get its locality */ if (NULL != local_ranks_in_jobid) { - uint16_t u16; + uint16_t u16 = 0; for (prn=0; prn < nprn; prn++) { - if (local_ranks_in_jobid[prn] == proc->super.proc_name.vpid) { + /* + * exclude procs not in our job id (aka pmix namespace) from localization optimizations + */ + if ((local_ranks_in_jobid[prn] == proc->super.proc_name.vpid) + && (OMPI_PROC_MY_NAME->jobid == proc->super.proc_name.jobid)) { /* get their locality string */ val = NULL; OPAL_MODEX_RECV_VALUE_IMMEDIATE(rc, PMIX_LOCALITY_STRING,