From bb1722f602d7e5237a9c1b230b6805cffdf0ca5b Mon Sep 17 00:00:00 2001 From: AlmaLinux RelEng Bot Date: Mon, 30 Mar 2026 10:57:52 -0400 Subject: [PATCH] import CS rdma-core-61.0-2.el9 --- .gitignore | 2 +- .rdma-core.metadata | 2 +- ...ts-Ensure-graceful-resource-cleaning.patch | 89 ------------------- ...pyverbs-Change-PD-object-return-type.patch | 43 --------- SPECS/rdma-core.spec | 36 ++++++-- 5 files changed, 29 insertions(+), 143 deletions(-) delete mode 100644 SOURCES/0001-tests-Ensure-graceful-resource-cleaning.patch delete mode 100644 SOURCES/0002-pyverbs-Change-PD-object-return-type.patch diff --git a/.gitignore b/.gitignore index 577807c..f2b5ae3 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/rdma-core-57.0.tar.gz +SOURCES/rdma-core-61.0.tar.gz diff --git a/.rdma-core.metadata b/.rdma-core.metadata index 08e88c6..0840e21 100644 --- a/.rdma-core.metadata +++ b/.rdma-core.metadata @@ -1 +1 @@ -30b959249471bd41a038916abff1f24cd76ec217 SOURCES/rdma-core-57.0.tar.gz +6251116447bad9c0f0bae73cce872ded4177ba83 SOURCES/rdma-core-61.0.tar.gz diff --git a/SOURCES/0001-tests-Ensure-graceful-resource-cleaning.patch b/SOURCES/0001-tests-Ensure-graceful-resource-cleaning.patch deleted file mode 100644 index 2b42364..0000000 --- a/SOURCES/0001-tests-Ensure-graceful-resource-cleaning.patch +++ /dev/null @@ -1,89 +0,0 @@ -From a9eb7409fb0b6af5dc54ae222286926b6a028ef0 Mon Sep 17 00:00:00 2001 -From: Edward Srouji -Date: Tue, 4 Mar 2025 16:02:35 +0200 -Subject: [PATCH] tests: Ensure graceful resource cleaning - -A SEGFAULT was observed recently on some environments with -python 3.12.X. -To work around the issue and ensure that python garbage collector exiting -gracefully, a new decorator was added that catches SkipTest unittest -exceptions and closes the context and its underlying resources. - -An a example of a segmentation fault occurrence that this test fixes: -$ python3 tests/run_tests.py test_mlx5_dma_memcpy -sTraceback (most recent call last): - File "cq.pyx", line 359, in pyverbs.cq.CQEX.close -pyverbs.pyverbs_error.PyverbsRDMAError: Failed to destroy CQEX. Errno: -9, Bad file descriptor -Exception ignored in: 'pyverbs.cq.CQEX.__dealloc__' -Traceback (most recent call last): - File "cq.pyx", line 359, in pyverbs.cq.CQEX.close -pyverbs.pyverbs_error.PyverbsRDMAError: Failed to destroy CQEX. Errno: -9, Bad file descriptor -Segmentation fault (core dumped) - -Signed-off-by: Edward Srouji ---- - tests/base.py | 32 +++++++++++++++++++++++++++++++- - 1 file changed, 31 insertions(+), 1 deletion(-) - -diff --git a/tests/base.py b/tests/base.py -index 2738714612ec..c6ffa1beca1a 100644 ---- a/tests/base.py -+++ b/tests/base.py -@@ -3,6 +3,7 @@ - - import multiprocessing as mp - import subprocess -+import functools - import unittest - import tempfile - import random -@@ -532,7 +533,35 @@ class RDMACMBaseTest(RDMATestCase): - sys.exit(2) - - --class BaseResources(object): -+def catch_skiptest(func): -+ """ -+ Decorator to catch unittest.SkipTest in __init__ resource functions. -+ It gracefully closes the context and all of its underlying resources. -+ """ -+ @functools.wraps(func) -+ def wrapper(self, *args, **kwargs): -+ try: -+ func(self, *args, **kwargs) -+ except unittest.SkipTest as e: -+ if hasattr(self, 'ctx') and self.ctx: -+ self.ctx.close() -+ raise e -+ return wrapper -+ -+ -+class SkipTestMeta(type): -+ """ -+ Metaclass to automatically wrap __init__ in catch_skiptest. -+ It should only be used in resource classes, such as those inheriting from -+ BaseResources. -+ """ -+ def __new__(cls, name, bases, dct): -+ if "__init__" in dct: -+ dct["__init__"] = catch_skiptest(dct["__init__"]) -+ return super().__new__(cls, name, bases, dct) -+ -+ -+class BaseResources(object, metaclass=SkipTestMeta): - """ - BaseResources class is a base aggregator object which contains basic - resources like Context and PD. It opens a context over the given device -@@ -548,6 +577,7 @@ class BaseResources(object): - self.dev_name = dev_name - self.gid_index = gid_index - self.ib_port = ib_port -+ self.ctx = None - self.create_context() - self.create_pd() - --- -2.49.0 - diff --git a/SOURCES/0002-pyverbs-Change-PD-object-return-type.patch b/SOURCES/0002-pyverbs-Change-PD-object-return-type.patch deleted file mode 100644 index 844b206..0000000 --- a/SOURCES/0002-pyverbs-Change-PD-object-return-type.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 47c3855f3b84c47cb471cbba8090a6997e07be57 Mon Sep 17 00:00:00 2001 -From: Shachar Kagan -Date: Mon, 28 Apr 2025 17:18:18 +0300 -Subject: [PATCH] pyverbs: Change PD object return type - -Change PD object return type to be compatible with Cython 3.x - -Signed-off-by: Shachar Kagan -Signed-off-by: Edward Srouji ---- - pyverbs/pd.pyx | 2 +- - pyverbs/providers/mlx5/mlx5dv_objects.pyx | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/pyverbs/pd.pyx b/pyverbs/pd.pyx -index 2d84e0b68d10..d8845e8a058b 100644 ---- a/pyverbs/pd.pyx -+++ b/pyverbs/pd.pyx -@@ -151,7 +151,7 @@ cdef class PD(PyverbsCM): - - @property - def pd(self): -- return self.pd -+ return self.pd - - - cdef void *pd_alloc(v.ibv_pd *pd, void *pd_context, size_t size, -diff --git a/pyverbs/providers/mlx5/mlx5dv_objects.pyx b/pyverbs/providers/mlx5/mlx5dv_objects.pyx -index e7776205a150..0567e81a06e8 100644 ---- a/pyverbs/providers/mlx5/mlx5dv_objects.pyx -+++ b/pyverbs/providers/mlx5/mlx5dv_objects.pyx -@@ -182,7 +182,7 @@ cdef class Mlx5DvObj(PyverbsObject): - self.dv_qp = dv_qp - if pd: - dv_pd = Mlx5DvPD() -- self.obj.pd.in_ = pd.pd -+ self.obj.pd.in_ = pd.pd - self.obj.pd.out = &(dv_pd.dv_pd) - self.dv_pd = dv_pd - if srq: --- -2.49.0 - diff --git a/SPECS/rdma-core.spec b/SPECS/rdma-core.spec index 1620706..26f3656 100644 --- a/SPECS/rdma-core.spec +++ b/SPECS/rdma-core.spec @@ -1,5 +1,5 @@ Name: rdma-core -Version: 57.0 +Version: 61.0 Release: 2%{?dist} Summary: RDMA core userspace libraries and daemons @@ -10,8 +10,6 @@ Summary: RDMA core userspace libraries and daemons License: GPLv2 or BSD Url: https://github.com/linux-rdma/rdma-core Source: https://github.com/linux-rdma/rdma-core/releases/download/v%{version}/%{name}-%{version}.tar.gz -Patch0001: 0001-tests-Ensure-graceful-resource-cleaning.patch -Patch0002: 0002-pyverbs-Change-PD-object-return-type.patch Patch9998: 9998-kernel-boot-Do-not-perform-device-rename-on-OPA-devi.patch Patch9999: 9999-udev-keep-NAME_KERNEL-as-default-interface-naming-co.patch # Do not build static libs by default. @@ -268,8 +266,6 @@ easy, object-oriented access to IB verbs. %prep %setup -q -%patch -P 0001 -p1 -%patch -P 0002 -p1 %if 0%{?fedora} %patch -P 9998 -p1 %endif @@ -332,10 +328,10 @@ mkdir -p %{buildroot}/%{_sysconfdir}/rdma %global sysmodprobedir %{_prefix}/lib/modprobe.d mkdir -p %{buildroot}%{_libexecdir} mkdir -p %{buildroot}%{_udevrulesdir} -mkdir -p %{buildroot}%{dracutlibdir}/modules.d/05rdma +mkdir -p %{buildroot}%{dracutlibdir}/modules.d/50rdma mkdir -p %{buildroot}%{sysmodprobedir} install -D -m0644 redhat/rdma.mlx4.conf %{buildroot}/%{_sysconfdir}/rdma/mlx4.conf -install -D -m0755 redhat/rdma.modules-setup.sh %{buildroot}%{dracutlibdir}/modules.d/05rdma/module-setup.sh +install -D -m0755 kernel-boot/dracut/50rdma/module-setup.sh %{buildroot}%{dracutlibdir}/modules.d/50rdma/module-setup.sh install -D -m0644 redhat/rdma.mlx4.sys.modprobe %{buildroot}%{sysmodprobedir}/libmlx4.conf install -D -m0755 redhat/rdma.mlx4-setup.sh %{buildroot}%{_libexecdir}/mlx4-setup.sh rm -f %{buildroot}%{_sysconfdir}/rdma/modules/rdma.conf @@ -416,8 +412,8 @@ fi %{_unitdir}/rdma-load-modules@.service %dir %{dracutlibdir} %dir %{dracutlibdir}/modules.d -%dir %{dracutlibdir}/modules.d/05rdma -%{dracutlibdir}/modules.d/05rdma/module-setup.sh +%dir %{dracutlibdir}/modules.d/50rdma +%{dracutlibdir}/modules.d/50rdma/module-setup.sh %dir %{_udevrulesdir} %{_udevrulesdir}/../rdma_rename %{_udevrulesdir}/60-rdma-ndd.rules @@ -432,6 +428,7 @@ fi %{_libexecdir}/truescale-serdes.cmds %{_sbindir}/rdma-ndd %{_unitdir}/rdma-ndd.service +%{_sbindir}/rdma_topo %{_mandir}/man7/rxe* %{_mandir}/man8/rdma-ndd.* %license COPYING.* @@ -539,6 +536,7 @@ fi %{_libdir}/libhns.so.* %{_libdir}/libibverbs*.so.* %{_libdir}/libibverbs/*.so +%{_libdir}/libionic.so.* %{_libdir}/libmana.so.* %{_libdir}/libmlx5.so.* %{_libdir}/libmlx4.so.* @@ -633,6 +631,26 @@ fi %endif %changelog +* Wed Jan 07 2026 Kamal Heib - 61.0-2 +- Rebuilt for gating testing +- Resolves: RHEL-98270, RHEL-97696, RHEL-97692, RHEL-97648, RHEL-95331 + +* Mon Jan 05 2026 Kamal Heib - 61.0-1 +- Rebase to upstream release v61.0 +- Resolves: RHEL-98270, RHEL-97696, RHEL-97692, RHEL-97648, RHEL-95331 + +* Wed Dec 17 2025 Kamal Heib - 60.0-3 +- bump release to rebuild in sidetag +- Resolves: RHEL-98270, RHEL-97696, RHEL-97692, RHEL-97648, RHEL-95331 + +* Wed Dec 10 2025 Kamal Heib - 60.0-2 +- bump release to rebuild in sidetag +- Resolves: RHEL-98270, RHEL-100679, RHEL-97696, RHEL-97692, RHEL-97648, RHEL-95331 + +* Mon Dec 01 2025 Kamal Heib - 60.0-1 +- Rebase to upstream release v60.0 +- Resolves: RHEL-98270, RHEL-100679, RHEL-97696, RHEL-97692, RHEL-97648, RHEL-95331 + * Thu Aug 07 2025 Kamal Heib - 57.0-2 - Fix pyverbs tests - Resolves: RHEL-107929, RHEL-107930