Skip to content

Commit 67d2215

Browse files
committed
sessions: fix some problems with multiple init/fini
Fix a couple of problems uncovered in issue open-mpi#12854. Turns out the MCA param management system was "remembering" things even if a variable was deregistered when a framework was closed. Also the test case showed that destructing ompi_mpi_session_null needs to be moved to ompi_mpi_instance_release. Related to open-mpi#12854 Signed-off-by: Howard Pritchard <[email protected]> (cherry picked from commit 155ee56)
1 parent e25d3e6 commit 67d2215

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

ompi/instance/instance.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,8 @@ void ompi_mpi_instance_release (void)
222222
opal_argv_free (ompi_mpi_instance_pmix_psets);
223223
ompi_mpi_instance_pmix_psets = NULL;
224224

225+
OBJ_DESTRUCT(&ompi_mpi_instance_null);
226+
225227
opal_finalize_cleanup_domain (&ompi_instance_basic_domain);
226228
OBJ_DESTRUCT(&ompi_instance_basic_domain);
227229

@@ -950,8 +952,6 @@ static int ompi_mpi_instance_finalize_common (void)
950952

951953
ompi_proc_finalize();
952954

953-
OBJ_DESTRUCT(&ompi_mpi_instance_null);
954-
955955
ompi_mpi_instance_release ();
956956

957957
if (0 == opal_initialized) {

opal/mca/base/mca_base_var_group.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
* reserved.
1616
* Copyright (c) 2017 Research Organization for Information Science
1717
* and Technology (RIST). All rights reserved.
18+
* Copyright (c) 2024 Triad National Security, LLC. All rights
19+
* reserved.
1820
* $COPYRIGHT$
1921
*
2022
* Additional copyrights may follow
@@ -374,6 +376,8 @@ int mca_base_var_group_deregister(int group_index)
374376
for (int i = 0; i < size; ++i) {
375377
OBJ_RELEASE(enums[i]);
376378
}
379+
opal_value_array_set_size(&group->group_enums, 0);
380+
377381

378382
size = opal_value_array_get_size(&group->group_subgroups);
379383
subgroups = OPAL_VALUE_ARRAY_GET_BASE(&group->group_subgroups, int);

0 commit comments

Comments
 (0)