Bug#1139569: silx: FTBFS against HDF5 2.1.0 - TestH5pyUtils.test_modes_multi_process_swmr [{'mode': 'w'}]

Gilles Filippini pini at debian.org
Fri Jun 19 13:24:51 BST 2026


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.
-------------- next part --------------
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 <pini at debian.org>  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 <woutdenolf at users.sf.net>
+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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://alioth-lists.debian.net/pipermail/debian-science-maintainers/attachments/20260619/c6a9befe/attachment-0001.sig>


More information about the debian-science-maintainers mailing list