From 860bbd6a1141c0a8a7f184db8d7a7333c8b6f271 Mon Sep 17 00:00:00 2001 From: Howard Pritchard Date: Mon, 6 Jan 2025 16:37:00 -0700 Subject: [PATCH] patcher: make it work better with sessions model Turns out that when Open MPI is configured with --enable-mca-dso and is using the OFI MTL/BTL/common, a problem is brought out with the patcher framework the second time through closing the bml and hence btl frameworks. See issue #13021. This patch fixes this problem. Signed-off-by: Howard Pritchard --- opal/mca/memory/patcher/memory_patcher_component.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/opal/mca/memory/patcher/memory_patcher_component.c b/opal/mca/memory/patcher/memory_patcher_component.c index f1321ba1ab8..02ddbc7a6e5 100644 --- a/opal/mca/memory/patcher/memory_patcher_component.c +++ b/opal/mca/memory/patcher/memory_patcher_component.c @@ -16,6 +16,7 @@ * Copyright (c) 2016-2017 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2016-2020 IBM Corporation. All rights reserved. + * Copyright (c) 2025 Triad National Security, LLC. All rights reserved. * * $COPYRIGHT$ * @@ -73,6 +74,7 @@ static int patcher_register(void); static int patcher_query(int *); static int mca_memory_patcher_priority; +static int was_executed_already = 0; opal_memory_patcher_component_t mca_memory_patcher_component = { .super = @@ -585,7 +587,6 @@ static int patcher_query(int *priority) static int patcher_open(void) { - static int was_executed_already = 0; int rc; if (was_executed_already) { @@ -678,6 +679,8 @@ static int patcher_close(void) { mca_base_framework_close(&opal_patcher_base_framework); + was_executed_already = 0; + /* Note that we don't need to unpatch any symbols here; the patcher framework will take care of all of that for us. */ return OPAL_SUCCESS;