Skip to content
Snippets Groups Projects
Unverified Commit 2309047a authored by Ralph Castain's avatar Ralph Castain
Browse files

Switch back to PMIx master branch


Update both PMIx and PRRTE. Ensure the MPI proc properly notifies the daemon when it is pausing for debugger attach

Signed-off-by: default avatarRalph Castain <rhc@pmix.org>
parent 206c8131
Branches
No related tags found
No related merge requests found
...@@ -5,4 +5,4 @@ ...@@ -5,4 +5,4 @@
[submodule "openpmix"] [submodule "openpmix"]
path = 3rd-party/openpmix path = 3rd-party/openpmix
url = https://github.com/openpmix/openpmix.git url = https://github.com/openpmix/openpmix.git
branch = v4.0 branch = master
Subproject commit 34fa2ca7bea3e6d4e2a40b5ca37a5b3401d41615 Subproject commit 174500cb2acba3b2f9fdc8eaea36e74ae54f1d5b
Subproject commit 4d7ba56f9e655b5d51b720c52b5839dcc3dac207 Subproject commit 5b666f963f8d68a4751d64bef3b3294665cea9e9
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
* and Technology (RIST). All rights reserved. * and Technology (RIST). All rights reserved.
* Copyright (c) 2020 Amazon.com, Inc. or its affiliates. All Rights * Copyright (c) 2020 Amazon.com, Inc. or its affiliates. All Rights
* reserved. * reserved.
* Copyright (c) 2021 Nanook Consulting. All rights reserved.
* $COPYRIGHT$ * $COPYRIGHT$
*/ */
#include "ompi_config.h" #include "ompi_config.h"
...@@ -996,7 +997,7 @@ void ompi_rte_abort_peers(opal_process_name_t *procs, ...@@ -996,7 +997,7 @@ void ompi_rte_abort_peers(opal_process_name_t *procs,
} }
static size_t handler = SIZE_MAX; static size_t handler = SIZE_MAX;
static bool debugger_event_active = true; static volatile bool debugger_event_active = true;
static void _release_fn(size_t refid, pmix_status_t status, static void _release_fn(size_t refid, pmix_status_t status,
const pmix_proc_t *source, const pmix_proc_t *source,
...@@ -1014,14 +1015,14 @@ static void _release_fn(size_t refid, pmix_status_t status, ...@@ -1014,14 +1015,14 @@ static void _release_fn(size_t refid, pmix_status_t status,
/* /*
* Wait for a debugger if asked. We support two ways of waiting for * Wait for a debugger if asked. We support two ways of waiting for
* attaching debuggers -- see big comment in * attaching debuggers
* pmix/tools/pmixrun/debuggers.c explaining the two scenarios.
*/ */
void ompi_rte_wait_for_debugger(void) void ompi_rte_wait_for_debugger(void)
{ {
pmix_info_t directive; pmix_info_t directive;
char *evar; char *evar;
int time, code = PMIX_ERR_DEBUGGER_RELEASE; int time, code = PMIX_ERR_DEBUGGER_RELEASE;
pmix_info_t info;
/* check PMIx to see if we are under a debugger */ /* check PMIx to see if we are under a debugger */
if (NULL == getenv("PMIX_DEBUG_WAIT_FOR_NOTIFY") && if (NULL == getenv("PMIX_DEBUG_WAIT_FOR_NOTIFY") &&
...@@ -1046,6 +1047,13 @@ void ompi_rte_wait_for_debugger(void) ...@@ -1046,6 +1047,13 @@ void ompi_rte_wait_for_debugger(void)
PMIx_Register_event_handler(&code, 1, &directive, 1, _release_fn, NULL, NULL); PMIx_Register_event_handler(&code, 1, &directive, 1, _release_fn, NULL, NULL);
PMIX_INFO_DESTRUCT(&directive); PMIX_INFO_DESTRUCT(&directive);
/* notify the host that we are waiting */
PMIX_INFO_LOAD(&info, PMIX_EVENT_NON_DEFAULT, NULL, PMIX_BOOL);
PMIx_Notify_event(PMIX_DEBUG_WAITING_FOR_NOTIFY,
&opal_process_info.myprocid,
PMIX_RANGE_RM, &info, 1, NULL, NULL);
PMIX_INFO_DESTRUCT(&info);
/* let the MPI progress engine run while we wait for debugger release */ /* let the MPI progress engine run while we wait for debugger release */
OMPI_WAIT_FOR_COMPLETION(debugger_event_active); OMPI_WAIT_FOR_COMPLETION(debugger_event_active);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment