#1145118 adios4dolfinx: FTBFS: E ValueError: [Sat Aug 22 10:11:38 2026] [ADIOS2 EXCEPTION] <Core> <IOHDF5> <MakeEngineHDF5> : A serial HDF5 engine cannot be used with a communicator that is MPI-based.

#1145118#5
Date:
2026-08-22 23:24:58 UTC
From:
To:
Dear maintainer:

During a rebuild of all packages in unstable, this package failed to build.

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

https://people.debian.org/~sanvila/build-logs/202608/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you cannot reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:adios4dolfinx, so that this is still
visible in the BTS web page for this package.

Thanks.
--------------------------------------------------------------------------------
[...]

=================================== FAILURES ===================================


/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_adios4dolfinx/build/tests/test_mesh_writer.py:25:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_adios4dolfinx/build/adios4dolfinx/checkpointing.py:806: in write_mesh
    _internal_mesh_writer(
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_adios4dolfinx/build/adios4dolfinx/writers.py:45: in write_mesh
    with ADIOSFile(
/usr/lib/python3.14/contextlib.py:141: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

adios = <adios2.bindings.adios2_bindings_mpi.ADIOS object at 0x7fecba2553b0>
filename = PosixPath('/tmp/pytest-of-sbuild/pytest-1/test_mesh_read_writer_True_Gho1/adios_mesh_HDF5_True.h5')
engine = 'HDF5', mode = Mode.Write, io_name = 'MeshWriter'
comm = <mpi4py.MPI.Intracomm object at 0x7fecb8d3b030>

    @contextmanager
    def ADIOSFile(
        adios: adios2.ADIOS,
        filename: Union[Path, str],
        engine: str,
        mode: adios2.Mode,
        io_name: str,
        comm: MPI.Intracomm | None = None,
    ):
        io = adios.DeclareIO(io_name)
        io.SetEngine(engine)
        # ADIOS2 sometimes struggles with existing files/folders it should overwrite
        if mode == adios2.Mode.Write:
            filename = Path(filename)
            if filename.exists() and comm is not None and comm.rank == 0:
                if filename.is_dir():
                    shutil.rmtree(filename)
                else:
                    filename.unlink()
            if comm is not None:
                comm.Barrier()
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_adios4dolfinx/build/adios4dolfinx/adios2_helpers.py:70: ValueError

/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_adios4dolfinx/build/tests/test_mesh_writer.py:25:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_adios4dolfinx/build/adios4dolfinx/checkpointing.py:806: in write_mesh
    _internal_mesh_writer(
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_adios4dolfinx/build/adios4dolfinx/writers.py:45: in write_mesh
    with ADIOSFile(
/usr/lib/python3.14/contextlib.py:141: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

adios = <adios2.bindings.adios2_bindings_mpi.ADIOS object at 0x7fecb896dcb0>
filename = PosixPath('/tmp/pytest-of-sbuild/pytest-1/test_mesh_read_writer_True_Gho4/adios_mesh_HDF5_True.h5')
engine = 'HDF5', mode = Mode.Write, io_name = 'MeshWriter'
comm = <mpi4py.MPI.Intracomm object at 0x7fecb896e100>

    @contextmanager
    def ADIOSFile(
        adios: adios2.ADIOS,
        filename: Union[Path, str],
        engine: str,
        mode: adios2.Mode,
        io_name: str,
        comm: MPI.Intracomm | None = None,
    ):
        io = adios.DeclareIO(io_name)
        io.SetEngine(engine)
        # ADIOS2 sometimes struggles with existing files/folders it should overwrite
        if mode == adios2.Mode.Write:
            filename = Path(filename)
            if filename.exists() and comm is not None and comm.rank == 0:
                if filename.is_dir():
                    shutil.rmtree(filename)
                else:
                    filename.unlink()
            if comm is not None:
                comm.Barrier()
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_adios4dolfinx/build/adios4dolfinx/adios2_helpers.py:70: ValueError

/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_adios4dolfinx/build/tests/test_mesh_writer.py:25:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_adios4dolfinx/build/adios4dolfinx/checkpointing.py:806: in write_mesh
    _internal_mesh_writer(
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_adios4dolfinx/build/adios4dolfinx/writers.py:45: in write_mesh
    with ADIOSFile(
/usr/lib/python3.14/contextlib.py:141: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

adios = <adios2.bindings.adios2_bindings_mpi.ADIOS object at 0x7fecb8931f80>
filename = PosixPath('/tmp/pytest-of-sbuild/pytest-1/test_mesh_read_writer_False_Gh1/adios_mesh_HDF5_False.h5')
engine = 'HDF5', mode = Mode.Write, io_name = 'MeshWriter'
comm = <mpi4py.MPI.Intracomm object at 0x7fecba3f57a0>

    @contextmanager
    def ADIOSFile(
        adios: adios2.ADIOS,
        filename: Union[Path, str],
        engine: str,
        mode: adios2.Mode,
        io_name: str,
        comm: MPI.Intracomm | None = None,
    ):
        io = adios.DeclareIO(io_name)
        io.SetEngine(engine)
        # ADIOS2 sometimes struggles with existing files/folders it should overwrite
        if mode == adios2.Mode.Write:
            filename = Path(filename)
            if filename.exists() and comm is not None and comm.rank == 0:
                if filename.is_dir():
                    shutil.rmtree(filename)
                else:
                    filename.unlink()
            if comm is not None:
                comm.Barrier()
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_adios4dolfinx/build/adios4dolfinx/adios2_helpers.py:70: ValueError

/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_adios4dolfinx/build/tests/test_mesh_writer.py:25:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_adios4dolfinx/build/adios4dolfinx/checkpointing.py:806: in write_mesh
    _internal_mesh_writer(
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_adios4dolfinx/build/adios4dolfinx/writers.py:45: in write_mesh
    with ADIOSFile(
/usr/lib/python3.14/contextlib.py:141: in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

adios = <adios2.bindings.adios2_bindings_mpi.ADIOS object at 0x7fecb896dec0>
filename = PosixPath('/tmp/pytest-of-sbuild/pytest-1/test_mesh_read_writer_False_Gh4/adios_mesh_HDF5_False.h5')
engine = 'HDF5', mode = Mode.Write, io_name = 'MeshWriter'
comm = <mpi4py.MPI.Intracomm object at 0x7fecb896d410>

    @contextmanager
    def ADIOSFile(
        adios: adios2.ADIOS,
        filename: Union[Path, str],
        engine: str,
        mode: adios2.Mode,
        io_name: str,
        comm: MPI.Intracomm | None = None,
    ):
        io = adios.DeclareIO(io_name)
        io.SetEngine(engine)
        # ADIOS2 sometimes struggles with existing files/folders it should overwrite
        if mode == adios2.Mode.Write:
            filename = Path(filename)
            if filename.exists() and comm is not None and comm.rank == 0:
                if filename.is_dir():
                    shutil.rmtree(filename)
                else:
                    filename.unlink()
            if comm is not None:
                comm.Barrier()
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_adios4dolfinx/build/adios4dolfinx/adios2_helpers.py:70: ValueError
=========================== short test summary info ============================
FAILED tests/test_mesh_writer.py::test_mesh_read_writer[True-GhostMode.shared_facet-HDF5-.h5]
FAILED tests/test_mesh_writer.py::test_mesh_read_writer[True-GhostMode.none-HDF5-.h5]
FAILED tests/test_mesh_writer.py::test_mesh_read_writer[False-GhostMode.shared_facet-HDF5-.h5]
FAILED tests/test_mesh_writer.py::test_mesh_read_writer[False-GhostMode.none-HDF5-.h5]
========== 4 failed, 998 passed, 5 skipped, 180 deselected in 16.84s ===========
E: pybuild pybuild:485: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_adios4dolfinx/build; python3.14 -m pytest -k "not test_original_checkpoint"
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.13 3.14" --parallel=2 returned exit code 13
make: *** [debian/rules:13: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2
--------------------------------------------------------------------------------