Bug#1134307: python-meshio: FTBFS: FAILED tests/test_vtu.py::test_read_from_file[01_raw_binary_int64.vtu-tetra-162-64]

Santiago Vila sanvila at debian.org
Sat Apr 18 18:32:29 BST 2026


Package: src:python-meshio
Version: 7.0.0-really-5.3.5-6
Severity: serious
Tags: ftbfs forky sid

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/202604/

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:python-meshio, so that this is still
visible in the BTS web page for this package.

Thanks.

--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean --buildsystem=pybuild
   dh_auto_clean -O--buildsystem=pybuild
   debian/rules execute_after_dh_auto_clean
make[1]: Entering directory '/<<PKGBUILDDIR>>'
rm -rf src/meshio.egg-info
rm -f msh2xdmf.1
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
   dh_autoreconf_clean -O--buildsystem=pybuild
   dh_clean -O--buildsystem=pybuild
 debian/rules binary
dh binary --buildsystem=pybuild
   dh_update_autotools_config -O--buildsystem=pybuild
   dh_autoreconf -O--buildsystem=pybuild
   dh_auto_configure -O--buildsystem=pybuild

[... snipped ...]

adding 'meshio-5.3.5.dist-info/WHEEL'
adding 'meshio-5.3.5.dist-info/entry_points.txt'
adding 'meshio-5.3.5.dist-info/top_level.txt'
adding 'meshio-5.3.5.dist-info/RECORD'
removing build/bdist.linux-x86_64/wheel
Successfully built meshio-5.3.5-py3-none-any.whl
I: pybuild plugin_pyproject:168: Unpacking wheel built for python3.13 with "installer" module
   debian/rules execute_after_dh_auto_build
make[1]: Entering directory '/<<PKGBUILDDIR>>'
pandoc -s -t man debian/msh2xdmf.md \
	-o msh2xdmf.1
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
   dh_auto_test -O--buildsystem=pybuild
I: pybuild base:385: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_meshio/build; python3.14 -m pytest tests
============================= test session starts ==============================
platform linux -- Python 3.14.4, pytest-9.0.3, pluggy-1.6.0
rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_meshio/build
configfile: pyproject.toml
plugins: typeguard-4.4.4
collected 763 items

tests/test_abaqus.py ...............                                     [  1%]
tests/test_ansys.py ..................                                   [  4%]
tests/test_avsucd.py ........                                            [  5%]
tests/test_cgns.py .                                                     [  5%]
tests/test_cli.py ....                                                   [  6%]
tests/test_dgf.py ...                                                    [  6%]
tests/test_dolfin.py .....                                               [  7%]
tests/test_exodus.py .................                                   [  9%]
tests/test_flac3d.py ............                                        [ 10%]
tests/test_gmsh.py ..................................................... [ 17%]
............................................................             [ 25%]
tests/test_helpers.py ..s..s                                             [ 26%]
tests/test_hmf.py ..............................s                        [ 30%]
tests/test_mdpa.py ............                                          [ 32%]
tests/test_med.py ......................                                 [ 34%]
tests/test_medit.py ..............                                       [ 36%]
tests/test_mesh.py ..s...                                                [ 37%]
tests/test_moab.py ......                                                [ 38%]
tests/test_nastran.py ..............                                     [ 40%]
tests/test_netgen.py .................................                   [ 44%]
tests/test_neuroglancer.py ..                                            [ 44%]
tests/test_obj.py .....s                                                 [ 45%]
tests/test_off.py ..                                                     [ 45%]
tests/test_permas.py ..........                                          [ 47%]
tests/test_ply.py ..................                                     [ 49%]
tests/test_public.py .                                                   [ 49%]
tests/test_stl.py ....                                                   [ 50%]
tests/test_su2.py .....                                                  [ 50%]
tests/test_svg.py .....                                                  [ 51%]
tests/test_tecplot.py ......                                             [ 52%]
tests/test_tetgen.py ..                                                  [ 52%]
tests/test_ugrid.py .................................................... [ 59%]
.......                                                                  [ 60%]
tests/test_vtk.py ...................................................... [ 67%]
.................................................                        [ 73%]
tests/test_vtu.py ...................................................... [ 80%]
........................................................FF               [ 88%]
tests/test_wkt.py s..                                                    [ 88%]
tests/test_xdmf.py ..................................................... [ 95%]
................................                                         [100%]

=================================== FAILURES ===================================
__________ test_read_from_file[01_raw_binary_int64.vtu-tetra-162-64] ___________

filename = PosixPath('/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_meshio/build/tests/meshes/vtu/01_raw_binary_int64.vtu')
ref_cells = 'tetra', ref_num_cells = 162, ref_num_pnt = 64

    @pytest.mark.parametrize(
        "filename, ref_cells, ref_num_cells, ref_num_pnt",
        [
            ("00_raw_binary.vtu", "tetra", 162, 64),
            ("01_raw_binary_int64.vtu", "tetra", 162, 64),
            ("02_raw_compressed.vtu", "tetra", 162, 64),
        ],
    )
    def test_read_from_file(filename, ref_cells, ref_num_cells, ref_num_pnt):
        this_dir = pathlib.Path(__file__).resolve().parent
        filename = this_dir / "meshes" / "vtu" / filename
    
>       mesh = meshio.read(filename)
               ^^^^^^^^^^^^^^^^^^^^^

tests/test_vtu.py:76: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
meshio/_helpers.py:71: in read
    return _read_file(Path(filename), file_format)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
meshio/_helpers.py:103: in _read_file
    return reader_map[file_format](str(path))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
meshio/vtu/_vtu.py:581: in read
    reader = VtuReader(filename)
             ^^^^^^^^^^^^^^^^^^^
meshio/vtu/_vtu.py:393: in __init__
    piece_cells[data_array.attrib["Name"]] = self.read_data(
meshio/vtu/_vtu.py:562: in read_data
    data = reader(self.appended_data[offset:], dtype)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
meshio/vtu/_vtu.py:452: in read_uncompressed_binary
    byte_string = base64.b64decode(data)
                  ^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

s = b'QBQAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAACAAAAAAAA...oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo='
altchars = None, validate = False

    def b64decode(s, altchars=None, validate=False):
        """Decode the Base64 encoded bytes-like object or ASCII string s.
    
        Optional altchars must be a bytes-like object or ASCII string of length 2
        which specifies the alternative alphabet used instead of the '+' and '/'
        characters.
    
        The result is returned as a bytes object.  A binascii.Error is raised if
        s is incorrectly padded.
    
        If validate is False (the default), characters that are neither in the
        normal base-64 alphabet nor the alternative alphabet are discarded prior
        to the padding check.  If validate is True, these non-alphabet characters
        in the input result in a binascii.Error.
        For more information about the strict base64 check, see:
    
        https://docs.python.org/3.11/library/binascii.html#binascii.a2b_base64
        """
        s = _bytes_from_decode_data(s)
        if altchars is not None:
            altchars = _bytes_from_decode_data(altchars)
            assert len(altchars) == 2, repr(altchars)
            s = s.translate(bytes.maketrans(altchars, b'+/'))
>       return binascii.a2b_base64(s, strict_mode=validate)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E       binascii.Error: Invalid base64-encoded string: number of data characters (8889) cannot be 1 more than a multiple of 4

/usr/lib/python3.14/base64.py:85: Error
___________ test_read_from_file[02_raw_compressed.vtu-tetra-162-64] ____________

filename = PosixPath('/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_meshio/build/tests/meshes/vtu/02_raw_compressed.vtu')
ref_cells = 'tetra', ref_num_cells = 162, ref_num_pnt = 64

    @pytest.mark.parametrize(
        "filename, ref_cells, ref_num_cells, ref_num_pnt",
        [
            ("00_raw_binary.vtu", "tetra", 162, 64),
            ("01_raw_binary_int64.vtu", "tetra", 162, 64),
            ("02_raw_compressed.vtu", "tetra", 162, 64),
        ],
    )
    def test_read_from_file(filename, ref_cells, ref_num_cells, ref_num_pnt):
        this_dir = pathlib.Path(__file__).resolve().parent
        filename = this_dir / "meshes" / "vtu" / filename
    
>       mesh = meshio.read(filename)
               ^^^^^^^^^^^^^^^^^^^^^

tests/test_vtu.py:76: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
meshio/_helpers.py:71: in read
    return _read_file(Path(filename), file_format)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
meshio/_helpers.py:103: in _read_file
    return reader_map[file_format](str(path))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
meshio/vtu/_vtu.py:581: in read
    reader = VtuReader(filename)
             ^^^^^^^^^^^^^^^^^^^
meshio/vtu/_vtu.py:393: in __init__
    piece_cells[data_array.attrib["Name"]] = self.read_data(
meshio/vtu/_vtu.py:562: in read_data
    data = reader(self.appended_data[offset:], dtype)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
meshio/vtu/_vtu.py:452: in read_uncompressed_binary
    byte_string = base64.b64decode(data)
                  ^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

s = b'QBQAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAACAAAAAAAA...oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo='
altchars = None, validate = False

    def b64decode(s, altchars=None, validate=False):
        """Decode the Base64 encoded bytes-like object or ASCII string s.
    
        Optional altchars must be a bytes-like object or ASCII string of length 2
        which specifies the alternative alphabet used instead of the '+' and '/'
        characters.
    
        The result is returned as a bytes object.  A binascii.Error is raised if
        s is incorrectly padded.
    
        If validate is False (the default), characters that are neither in the
        normal base-64 alphabet nor the alternative alphabet are discarded prior
        to the padding check.  If validate is True, these non-alphabet characters
        in the input result in a binascii.Error.
        For more information about the strict base64 check, see:
    
        https://docs.python.org/3.11/library/binascii.html#binascii.a2b_base64
        """
        s = _bytes_from_decode_data(s)
        if altchars is not None:
            altchars = _bytes_from_decode_data(altchars)
            assert len(altchars) == 2, repr(altchars)
            s = s.translate(bytes.maketrans(altchars, b'+/'))
>       return binascii.a2b_base64(s, strict_mode=validate)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E       binascii.Error: Invalid base64-encoded string: number of data characters (8889) cannot be 1 more than a multiple of 4

/usr/lib/python3.14/base64.py:85: Error
=============================== warnings summary ===============================
tests/test_stl.py::test_stl[False-1e-15-mesh1]
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_meshio/build/meshio/stl/_stl.py:40: RuntimeWarning: overflow encountered in scalar multiply
    if 84 + num_triangles * 50 == filesize_bytes:

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/test_vtu.py::test_read_from_file[01_raw_binary_int64.vtu-tetra-162-64]
FAILED tests/test_vtu.py::test_read_from_file[02_raw_compressed.vtu-tetra-162-64]
============= 2 failed, 755 passed, 6 skipped, 1 warning in 2.08s ==============
E: pybuild pybuild:485: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_meshio/build; python3.14 -m pytest tests
I: pybuild base:385: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_meshio/build; python3.13 -m pytest tests
============================= test session starts ==============================
platform linux -- Python 3.13.12, pytest-9.0.3, pluggy-1.6.0
rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_meshio/build
configfile: pyproject.toml
plugins: typeguard-4.4.4
collected 763 items

tests/test_abaqus.py ...............                                     [  1%]
tests/test_ansys.py ..................                                   [  4%]
tests/test_avsucd.py ........                                            [  5%]
tests/test_cgns.py .                                                     [  5%]
tests/test_cli.py ....                                                   [  6%]
tests/test_dgf.py ...                                                    [  6%]
tests/test_dolfin.py .....                                               [  7%]
tests/test_exodus.py .................                                   [  9%]
tests/test_flac3d.py ............                                        [ 10%]
tests/test_gmsh.py ..................................................... [ 17%]
............................................................             [ 25%]
tests/test_helpers.py ..s..s                                             [ 26%]
tests/test_hmf.py ..............................s                        [ 30%]
tests/test_mdpa.py ............                                          [ 32%]
tests/test_med.py ......................                                 [ 34%]
tests/test_medit.py ..............                                       [ 36%]
tests/test_mesh.py ..s...                                                [ 37%]
tests/test_moab.py ......                                                [ 38%]
tests/test_nastran.py ..............                                     [ 40%]
tests/test_netgen.py .................................                   [ 44%]
tests/test_neuroglancer.py ..                                            [ 44%]
tests/test_obj.py .....s                                                 [ 45%]
tests/test_off.py ..                                                     [ 45%]
tests/test_permas.py ..........                                          [ 47%]
tests/test_ply.py ..................                                     [ 49%]
tests/test_public.py .                                                   [ 49%]
tests/test_stl.py ....                                                   [ 50%]
tests/test_su2.py .....                                                  [ 50%]
tests/test_svg.py .....                                                  [ 51%]
tests/test_tecplot.py ......                                             [ 52%]
tests/test_tetgen.py ..                                                  [ 52%]
tests/test_ugrid.py .................................................... [ 59%]
.......                                                                  [ 60%]
tests/test_vtk.py ...................................................... [ 67%]
.................................................                        [ 73%]
tests/test_vtu.py ...................................................... [ 80%]
..........................................................               [ 88%]
tests/test_wkt.py s..                                                    [ 88%]
tests/test_xdmf.py ..................................................... [ 95%]
................................                                         [100%]

=============================== warnings summary ===============================
tests/test_stl.py::test_stl[False-1e-15-mesh1]
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_meshio/build/meshio/stl/_stl.py:40: RuntimeWarning: overflow encountered in scalar multiply
    if 84 + num_triangles * 50 == filesize_bytes:

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
================== 757 passed, 6 skipped, 1 warning in 2.00s ===================
I: pybuild pybuild:416: find /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_meshio/build -maxdepth 1 -type f -delete
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.14 3.13" --parallel=2 returned exit code 13
make: *** [debian/rules:15: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2
--------------------------------------------------------------------------------



More information about the debian-science-maintainers mailing list