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