Control: tags -1 + patch

Hi,

Gilles Filippini a écrit le 09/06/2026 à 21:35 :
Source: silx
Version: 2.2.2-4
Severity: important
Tags: ftbfs

Hi,

During a test rebuild of HDF5's reverse dependcies against HDF5 2.1.0
currently in experimental, silx FTBFS with 1 failed test (twice):

_________ TestH5pyUtils.test_modes_multi_process_swmr [{'mode': 'w'}] __________

self = <silx.io.test.test_h5py_utils.TestH5pyUtils 
testMethod=test_modes_multi_process_swmr>

     def wrapper(self):
         for subtest_options in self._subtests():
             print("\n====SUB TEST===\n")
             print(f"sub test options: {subtest_options}")
             with self.subTest(str(subtest_options)):
               test(self)

silx/io/test/test_h5py_utils.py:140:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <silx.io.test.test_h5py_utils.TestH5pyUtils 
testMethod=test_modes_multi_process_swmr>

     @subtests
     @unittest.skipIf(not h5py_utils.HAS_SWMR, "SWMR not supported")
     def test_modes_multi_process_swmr(self):
         filename = self._new_filename()
with self._open_context(filename, mode="w", libver="latest") as f:
             pass
# File open by SWMR writer
         with self._open_context_subprocess(filename, mode="a", swmr=True):
             with self._open_context(filename, mode="r") as f:
               assert f.swmr_mode
E               AssertionError: assert False
E                +  where False = <HDF5 file "file1.h5" (mode r)>.swmr_mode

silx/io/test/test_h5py_utils.py:343: AssertionError
=============================== warnings summary ===============================
silx/io/test/test_h5py_utils.py: 10 warnings
   /usr/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: 
This process (pid=14626) is multi-threaded, use of fork() may lead to deadlocks 
in the child.
     self.pid = os.fork()

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
SUBFAILED[{'mode': 'w'}] 
silx/io/test/test_h5py_utils.py::TestH5pyUtils::test_modes_multi_process_swmr
========== 1 failed, 1153 passed, 1371 skipped, 10 warnings in 25.53s ==========


Don't hesitate to reach out if you need help from HF5 devs which I'm
in touch with and who are willing to help making HDF5 2.1.0 land into
testing.

The atteched patch fixes the problem.

Best,
_g.
diff -Nru silx-2.2.2/debian/changelog silx-2.2.2/debian/changelog
--- silx-2.2.2/debian/changelog 2026-03-25 19:02:58.000000000 +0100
+++ silx-2.2.2/debian/changelog 2026-06-19 13:21:54.000000000 +0200
@@ -1,3 +1,11 @@
+silx (2.2.2-4.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * New patch from upstream (pr-4530.patch) to fix FTBFS against HDF5
+    2.1.0 (closes: #1139569)
+
+ -- Gilles Filippini <[email protected]>  Fri, 19 Jun 2026 13:21:54 +0200
+
 silx (2.2.2-4) unstable; urgency=medium
 
   * d/t/control: skip OpenCL tests on s390x
diff -Nru silx-2.2.2/debian/patches/pr-4530.patch 
silx-2.2.2/debian/patches/pr-4530.patch
--- silx-2.2.2/debian/patches/pr-4530.patch     1970-01-01 01:00:00.000000000 
+0100
+++ silx-2.2.2/debian/patches/pr-4530.patch     2026-06-19 13:21:54.000000000 
+0200
@@ -0,0 +1,44 @@
+From df66006b941575b6fd280f1d11db01a54416e96b Mon Sep 17 00:00:00 2001
+From: woutdenolf <[email protected]>
+Date: Fri, 13 Mar 2026 15:48:47 +0100
+Subject: [PATCH] Fix test: earliest libver is lower than v110 with h5py 3.16
+ which does not support SWMR
+
+---
+ pyproject.toml                      |  2 +-
+ src/silx/io/test/test_h5py_utils.py | 13 ++++++++++++-
+ 2 files changed, 13 insertions(+), 2 deletions(-)
+
+Index: silx-2.2.2/src/silx/io/test/test_h5py_utils.py
+===================================================================
+--- silx-2.2.2.orig/src/silx/io/test/test_h5py_utils.py
++++ silx-2.2.2/src/silx/io/test/test_h5py_utils.py
+@@ -153,9 +153,14 @@ class TestH5pyUtils(unittest.TestCase):
+         self._subtest_options = {"mode": "w"}
+         self.filename_generator = self._filenames()
+         yield self._subtest_options
++
++        self._subtest_options = {"mode": "w", "libver": "v110"}
++        self.filename_generator = self._filenames()
++        yield self._subtest_options
++
+         self._subtest_options = {"mode": "w", "libver": "latest"}
+         self.filename_generator = self._filenames()
+-        yield
++        yield self._subtest_options
+ 
+     def _filenames(self):
+         i = 1
+@@ -332,6 +337,12 @@ class TestH5pyUtils(unittest.TestCase):
+     @subtests
+     @unittest.skipIf(not h5py_utils.HAS_SWMR, "SWMR not supported")
+     def test_modes_multi_process_swmr(self):
++        libver = self._subtest_options.get("libver", "earliest")
++        if libver == "earliest":
++            self.skipTest(
++                "HDF5 file version is 'earliest': SWMR is not always 
supported since it needs v110"
++            )
++
+         filename = self._new_filename()
+ 
+         with self._open_context(filename, mode="w", libver="latest") as f:
diff -Nru silx-2.2.2/debian/patches/series silx-2.2.2/debian/patches/series
--- silx-2.2.2/debian/patches/series    2026-03-25 19:02:58.000000000 +0100
+++ silx-2.2.2/debian/patches/series    2026-06-19 13:21:54.000000000 +0200
@@ -5,3 +5,4 @@
 0005-Deal-with-big-endian-architectures.patch
 pint-get-application-registry.patch
 0007-skip-retry-test.patch
+pr-4530.patch

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to