Skip to content

Commit 6635795

Browse files
committed
Fix intercomm operations
The locality for remote procs is not provided as it is only a local concept. Thus, you must _always_ use modex_recv_optional to ensure you don't hang waiting for a response until dmodex times out. Signed-off-by: Ralph Castain <rhc@pmix.org>
1 parent 2bb8eeb commit 6635795

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

ompi/communicator/comm.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
* All rights reserved.
2121
* Copyright (c) 2014-2017 Research Organization for Information Science
2222
* and Technology (RIST). All rights reserved.
23-
* Copyright (c) 2014-2019 Intel, Inc. All rights reserved.
23+
* Copyright (c) 2014-2020 Intel, Inc. All rights reserved.
2424
* Copyright (c) 2015 Mellanox Technologies. All rights reserved.
2525
* Copyright (c) 2017 IBM Corporation. All rights reserved.
2626
* $COPYRIGHT$
@@ -673,7 +673,7 @@ static int ompi_comm_split_type_get_part (ompi_group_t *group, const int split_t
673673

674674
u16ptr = &locality;
675675

676-
OPAL_MODEX_RECV_VALUE(ret, PMIX_LOCALITY, &proc_name, &u16ptr, PMIX_UINT16);
676+
OPAL_MODEX_RECV_VALUE_OPTIONAL(ret, PMIX_LOCALITY, &proc_name, &u16ptr, PMIX_UINT16);
677677
if (OPAL_SUCCESS != ret) {
678678
continue;
679679
}
@@ -1655,7 +1655,7 @@ int ompi_comm_get_rprocs ( ompi_communicator_t *local_comm,
16551655
* to provide this information at startup */
16561656
uint16_t *u16ptr, u16;
16571657
u16ptr = &u16;
1658-
OPAL_MODEX_RECV_VALUE(rc, PMIX_LOCALITY, &rprocs[i]->super.proc_name, &u16ptr, PMIX_UINT16);
1658+
OPAL_MODEX_RECV_VALUE_OPTIONAL(rc, PMIX_LOCALITY, &rprocs[i]->super.proc_name, &u16ptr, PMIX_UINT16);
16591659
if (OPAL_SUCCESS == rc) {
16601660
rprocs[i]->super.proc_flags = u16;
16611661
} else {

0 commit comments

Comments
 (0)