diff --git a/var/spack/repos/builtin/packages/mvapich2/mpir_attr_delete_list_segfault.patch b/var/spack/repos/builtin/packages/mvapich2/mpir_attr_delete_list_segfault.patch new file mode 100644 index 00000000000..ee48dd8e0f9 --- /dev/null +++ b/var/spack/repos/builtin/packages/mvapich2/mpir_attr_delete_list_segfault.patch @@ -0,0 +1,18 @@ +--- a/src/mpi/attr/attrutil.c ++++ b/src/mpi/attr/attrutil.c +@@ -266,6 +266,7 @@ + corresponding keyval */ + /* Still to do: capture any error returns but continue to + process attributes */ ++ if (p->keyval) { + mpi_errno = MPIR_Call_attr_delete( handle, p ); + + /* We must also remove the keyval reference. If the keyval +@@ -282,6 +283,7 @@ + MPIU_Handle_obj_free( &MPID_Keyval_mem, p->keyval ); + } + } ++ } + + MPIU_Handle_obj_free( &MPID_Attr_mem, p ); + diff --git a/var/spack/repos/builtin/packages/mvapich2/package.py b/var/spack/repos/builtin/packages/mvapich2/package.py index 90520ceda88..0bcd81ec9a2 100644 --- a/var/spack/repos/builtin/packages/mvapich2/package.py +++ b/var/spack/repos/builtin/packages/mvapich2/package.py @@ -133,6 +133,10 @@ class Mvapich2(AutotoolsPackage): depends_on("libfabric", when="fabrics=nemesisofi") depends_on("slurm", when="process_managers=slurm") + # Fix segmentation fault in `MPIR_Attr_delete_list`: + # . + patch("mpir_attr_delete_list_segfault.patch", when="@2.3.7") + conflicts("fabrics=psm2", when="@:2.1") # psm2 support was added at version 2.2 filter_compiler_wrappers("mpicc", "mpicxx", "mpif77", "mpif90", "mpifort", relative_root="bin")