summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMosè Giordano <giordano@users.noreply.github.com>2023-07-23 05:44:15 +0100
committerGitHub <noreply@github.com>2023-07-22 21:44:15 -0700
commitac3c0a434702d5ce378fd8a826032582297fe79f (patch)
tree2b50b0e634645887bdb10d371a7fc650555f2225
parentcc2fa9895e232bbade5ec777774ac15c33e16566 (diff)
downloadspack-ac3c0a434702d5ce378fd8a826032582297fe79f.tar.gz
spack-ac3c0a434702d5ce378fd8a826032582297fe79f.tar.bz2
spack-ac3c0a434702d5ce378fd8a826032582297fe79f.tar.xz
spack-ac3c0a434702d5ce378fd8a826032582297fe79f.zip
mvapich2: Add patch to avoid segmentation fault in `MPIR_Attr_delete_list` (#39058)
-rw-r--r--var/spack/repos/builtin/packages/mvapich2/mpir_attr_delete_list_segfault.patch18
-rw-r--r--var/spack/repos/builtin/packages/mvapich2/package.py4
2 files changed, 22 insertions, 0 deletions
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 0000000000..ee48dd8e0f
--- /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 90520ceda8..0bcd81ec9a 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`:
+ # <https://lists.osu.edu/pipermail/mvapich-discuss/2023-January/010695.html>.
+ 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")