From d619de4f4ccf7c309b6476a1b8b44595da9d1131 Mon Sep 17 00:00:00 2001 From: Ralph Castain Date: Wed, 28 Jun 2017 08:58:41 -0700 Subject: [PATCH] Fix a threadlock when notifying clients of failures Signed-off-by: Ralph Castain --- opal/mca/pmix/pmix2x/pmix2x.c | 6 +++--- opal/mca/pmix/pmix2x/pmix2x_server_south.c | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/opal/mca/pmix/pmix2x/pmix2x.c b/opal/mca/pmix/pmix2x/pmix2x.c index bd061f0c5b..e2bc5d5ef9 100644 --- a/opal/mca/pmix/pmix2x/pmix2x.c +++ b/opal/mca/pmix/pmix2x/pmix2x.c @@ -240,9 +240,9 @@ void pmix2x_event_hdlr(size_t evhdlr_registration_id, size_t n; opal_pmix2x_event_t *event; - opal_output_verbose(2, opal_pmix_base_framework.framework_output, - "%s RECEIVED NOTIFICATION OF STATUS %d", - OPAL_NAME_PRINT(OPAL_PROC_MY_NAME), status); + opal_output_verbose(2, opal_pmix_base_framework.framework_output, + "%s RECEIVED NOTIFICATION OF STATUS %d", + OPAL_NAME_PRINT(OPAL_PROC_MY_NAME), status); OPAL_PMIX_ACQUIRE_THREAD(&opal_pmix_base.lock); diff --git a/opal/mca/pmix/pmix2x/pmix2x_server_south.c b/opal/mca/pmix/pmix2x/pmix2x_server_south.c index 068a2dbc08..d22622ede1 100644 --- a/opal/mca/pmix/pmix2x/pmix2x_server_south.c +++ b/opal/mca/pmix/pmix2x/pmix2x_server_south.c @@ -413,9 +413,11 @@ void pmix2x_server_deregister_client(const opal_process_name_t *proc, (void)strncpy(p.nspace, jptr->nspace, PMIX_MAX_NSLEN); p.rank = pmix2x_convert_opalrank(proc->vpid); OPAL_PMIX_CONSTRUCT_LOCK(&lock); + OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock); PMIx_server_deregister_client(&p, lkcbfunc, (void*)&lock); OPAL_PMIX_WAIT_THREAD(&lock); OPAL_PMIX_DESTRUCT_LOCK(&lock); + OPAL_PMIX_ACQUIRE_THREAD(&opal_pmix_base.lock); break; } }