From f1f52ea9c9e4d2282e757c2d18156574cb037cb3d70cfe1873fac4aa249d8ce6 Mon Sep 17 00:00:00 2001 From: Nicolas Morey-Chaisemartin Date: Thu, 6 Oct 2022 17:01:30 +0000 Subject: [PATCH] Accepting request 1008573 from home:NMoreyChaisemartin:branches:science:HPC - Add prov-rxm-Disable-128-bit-atomics.patch to fix a potential segfault on misaligned buffers. - Add prov-rxm-Disable-128-bit-atomics.patch to fix a potential segfault on misaligned buffers. OBS-URL: https://build.opensuse.org/request/show/1008573 OBS-URL: https://build.opensuse.org/package/show/science:HPC/libfabric?expand=0&rev=77 --- fabtests.changes | 6 +++++ fabtests.spec | 2 ++ libfabric.changes | 6 +++++ libfabric.spec | 2 ++ prov-rxm-Disable-128-bit-atomics.patch | 32 ++++++++++++++++++++++++++ 5 files changed, 48 insertions(+) create mode 100644 prov-rxm-Disable-128-bit-atomics.patch diff --git a/fabtests.changes b/fabtests.changes index 9668779..548f723 100644 --- a/fabtests.changes +++ b/fabtests.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Oct 6 16:06:29 UTC 2022 - Nicolas Morey-Chaisemartin + +- Add prov-rxm-Disable-128-bit-atomics.patch to fix a potential + segfault on misaligned buffers. + ------------------------------------------------------------------- Fri Sep 30 11:44:45 UTC 2022 - Nicolas Morey-Chaisemartin diff --git a/fabtests.spec b/fabtests.spec index b96ad6f..4d1d11c 100644 --- a/fabtests.spec +++ b/fabtests.spec @@ -28,6 +28,7 @@ URL: http://www.github.com/ofiwg/libfabric Source: libfabric-%{version}%{git_ver}.tar.bz2 Source1: fabtests-rpmlintrc Patch0: libfabric-libtool.patch +Patch1: prov-rxm-Disable-128-bit-atomics.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: libfabric-devel = %{version} @@ -40,6 +41,7 @@ Fabtests provides a set of examples that uses libfabric, a fabric software libra %prep %setup -q -n libfabric-%{version}%{git_ver} %patch0 -p1 +%patch1 %build cd fabtests diff --git a/libfabric.changes b/libfabric.changes index 9668779..548f723 100644 --- a/libfabric.changes +++ b/libfabric.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Oct 6 16:06:29 UTC 2022 - Nicolas Morey-Chaisemartin + +- Add prov-rxm-Disable-128-bit-atomics.patch to fix a potential + segfault on misaligned buffers. + ------------------------------------------------------------------- Fri Sep 30 11:44:45 UTC 2022 - Nicolas Morey-Chaisemartin diff --git a/libfabric.spec b/libfabric.spec index c2966a7..576c238 100644 --- a/libfabric.spec +++ b/libfabric.spec @@ -28,6 +28,7 @@ Group: Development/Libraries/C and C++ Source: %{name}-%{version}%{git_ver}.tar.bz2 Source1: baselibs.conf Patch0: libfabric-libtool.patch +Patch1: prov-rxm-Disable-128-bit-atomics.patch URL: http://www.github.com/ofiwg/libfabric BuildRequires: autoconf BuildRequires: automake @@ -70,6 +71,7 @@ services, such as RDMA. This package contains the development files. %prep %setup -q -n %{name}-%{version}%{git_ver} %patch0 -p1 +%patch1 %build rm -f config/libtool.m4 diff --git a/prov-rxm-Disable-128-bit-atomics.patch b/prov-rxm-Disable-128-bit-atomics.patch new file mode 100644 index 0000000..8cff56e --- /dev/null +++ b/prov-rxm-Disable-128-bit-atomics.patch @@ -0,0 +1,32 @@ +commit 740b5e9daa2319f7397797f2f17d8e56245fdce4 +Author: Nicolas Morey-Chaisemartin +Date: Thu Oct 6 18:02:38 2022 +0200 + + prov/rxm: Disable 128-bit atomics + + 128-bit atomics fail (cause segfault) in release build of + provider. Cause is likely related to alignment. Fail + query calls for 128-bit integers to indicate support is not + provided. + + https://github.com/ofiwg/libfabric/issues/7248 + + Signed-off-by: Nicolas Morey-Chaisemartin + +diff --git prov/rxm/src/rxm_atomic.c prov/rxm/src/rxm_atomic.c +index 28e29ade0dde..0f070b92f446 100644 +--- prov/rxm/src/rxm_atomic.c ++++ prov/rxm/src/rxm_atomic.c +@@ -509,6 +509,12 @@ int rxm_ep_query_atomic(struct fid_domain *domain, enum fi_datatype datatype, + return -FI_EINVAL; + } + ++ if ((datatype == FI_INT128) || (datatype == FI_UINT128)) { ++ FI_WARN(&rxm_prov, FI_LOG_EP_CTRL, ++ "128-bit integers not supported\n"); ++ return -FI_EOPNOTSUPP; ++ } ++ + ret = ofi_atomic_valid(&rxm_prov, datatype, op, flags); + if (ret || !attr) + return ret;