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

#1134307#5
Date:
2026-04-18 17:32:29 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/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 ===================================

               ^^^^^^^^^^^^^^^^^^^^^

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'+/'))
/usr/lib/python3.14/base64.py:85: Error
               ^^^^^^^^^^^^^^^^^^^^^

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'+/'))
/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:

#1134307#10
Date:
2026-04-22 15:17:08 UTC
From:
To:
Strange error. Not clear to me why it's happening all of a sudden.

Meshio has not changed, evidently they changed some behaviour in python 3.14.4.

#1134307#15
Date:
2026-04-22 15:49:47 UTC
From:
To:
My guess is the problem is the python bug reported at
https://github.com/python/cpython/issues/145264

If that's it then it would be fixed by the later patch
https://github.com/python/cpython/pull/146326

Let's let meshio sit until we get a few more new python 3.14 releases
tested.

#1134307#20
Date:
2026-05-13 17:04:36 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
python-meshio, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1134307@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Drew Parsons <dparsons@debian.org> (supplier of updated python-meshio package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Wed, 13 May 2026 17:46:05 +0200
Source: python-meshio
Architecture: source
Version: 7.0.0-really-5.3.5-7
Distribution: unstable
Urgency: medium
Maintainer: Debian Science Maintainers <debian-science-maintainers@lists.alioth.debian.org>
Changed-By: Drew Parsons <dparsons@debian.org>
Closes: 1134307
Changes:
 python-meshio (7.0.0-really-5.3.5-7) unstable; urgency=medium
 .
   * skip test_read_from_file in test_vtu.py. No longer compatible with
     python3.14 due to updates in the base64 module. Closes: #1134307
   * Standards-Version: 4.7.4
Checksums-Sha1:
 fe97406dfb391875e758a27af1f00526ce3abeb2 2616 python-meshio_7.0.0-really-5.3.5-7.dsc
 500299214dbe74f9bb3afbf736df8405236b187d 38092 python-meshio_7.0.0-really-5.3.5-7.debian.tar.xz
 94a20e525c38a8bdf16d08ff1fe24bec1e47b649 9427 python-meshio_7.0.0-really-5.3.5-7_amd64.buildinfo
Checksums-Sha256:
 f184787a4628797951b0827054ca7c7488774ec7011bed70366e69007d554078 2616 python-meshio_7.0.0-really-5.3.5-7.dsc
 5103e6afa55bec3b142fecc2c3892cda82eb144f1a879e98d3f71a893793730c 38092 python-meshio_7.0.0-really-5.3.5-7.debian.tar.xz
 7bdea7c9275f3030f17d66e52b434cf288a2d4090df8900f9f5b53ed9a6a6101 9427 python-meshio_7.0.0-really-5.3.5-7_amd64.buildinfo
Files:
 868746f7c4334d4b19270d2fb5613fe4 2616 python optional python-meshio_7.0.0-really-5.3.5-7.dsc
 ddc3f9a9c3c15431d992d8e3570899cc 38092 python optional python-meshio_7.0.0-really-5.3.5-7.debian.tar.xz
 8caa4ba38b5f5c71e1cc1786db072520 9427 python optional python-meshio_7.0.0-really-5.3.5-7_amd64.buildinfo
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEI8mpPlhYGekSbQo2Vz7x5L1aAfoFAmoEqoYACgkQVz7x5L1a
AfpNHhAAn0Spk8EQW52zKjTzQg5nFoGEcV794mreDmGeEtvOtq49VNdrEjq9N7KR
a6cAyKzfUs8ejhDenzTkLqqlKG2hI34xNAPH/wqRniF0BGGUtSMQHDKLBqQ3Ixnm
dLUPkbP7wkDn5iFB+ypZpcuG+N/c0xCYqxhtFeDFsIdFKPwOagkI8au+BjB3C81b
zMYQLt23vsc+Wx4ioow/YTWgLSpXKBTWJEMVpyYN2CUzP1MrdZaT6w5yXlUMNkrd
6+AsqO7FqJ8mQvH8hZELKqSTz1VdSNSoB+c8E6OOjTq7zQxBo4EqOZ1TERmtjYGD
88g20I417N6Nlsk7SP90P/tmsJSEdDjWu0TqgkjHSiBHO/qV8h5PW9YaAcHOiHem
cxZP56qIN1NYa+rjNzytAks+A0IXU7WZJ2Z56w1BddO79nOP0xskbfl6uus+aZL9
UQ0Q7PdLZt0J3snpnuBea6zObccPxLckByGmDruaFSuFN+8imykylMHVNrKz6C31
gzqLRw0Ajnp45LLOHTgjaQ6YEpeuU1cAWgvOfaG42smg6XuT1/J2ePeU2Cp6XasR
/kqXhPD8t4evr/q2/jjSjr/HnHp8ECmbRNmKy+/Fg77ly60BbA9rVLio9vwMnE3E
DgjCNVv6QPovQ5nFCwtmf4DCyXVSLGmorhKsPCkb4OrMaM6hdNE=
=21WD
-----END PGP SIGNATURE-----

#1134307#27
Date:
2026-06-01 12:08:33 UTC
From:
To:
tags 1134307 trixie
thanks

Hi. This is also happening in trixie now, which is strange because it
means python3.14 alone may not be the reason for the failure.

Anyway, I am going to make an upload for trixie which disables
the same test that you disabled in unstable two weeks ago.

Thanks.