While working to improve packaging and testing of the python-pypet package, I found that very many tests (approximately half) fail due to apparent endian issues in pandas.HDFStore. Here is a typical example: ====================================================================== ERROR: test_storage_and_loading (unittests.annotations_test.AnnotationsTest.test_storage_and_loading) ---------------------------------------------------------------------- Traceback (most recent call last): File "/builddir/build/BUILDROOT/python-pypet-0.5.2-30.fc40.s390x/usr/lib/python3.12/site-packages/pypet/tests/unittests/annotations_test.py", line 94, in test_storage_and_loading self.traj.f_store() File "/builddir/build/BUILDROOT/python-pypet-0.5.2-30.fc40.s390x/usr/lib/python3.12/site-packages/pypet/utils/decorators.py", line 163, in new_func return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILDROOT/python-pypet-0.5.2-30.fc40.s390x/usr/lib/python3.12/site-packages/pypet/utils/decorators.py", line 163, in new_func return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILDROOT/python-pypet-0.5.2-30.fc40.s390x/usr/lib/python3.12/site-packages/pypet/utils/decorators.py", line 121, in new_func return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILDROOT/python-pypet-0.5.2-30.fc40.s390x/usr/lib/python3.12/site-packages/pypet/trajectory.py", line 2872, in f_store self._storage_service.store(pypetconstants.TRAJECTORY, self, File "/builddir/build/BUILDROOT/python-pypet-0.5.2-30.fc40.s390x/usr/lib/python3.12/site-packages/pypet/storageservice.py", line 1337, in store self._srvc_closing_routine(opened) File "/builddir/build/BUILDROOT/python-pypet-0.5.2-30.fc40.s390x/usr/lib/python3.12/site-packages/pypet/storageservice.py", line 1556, in _srvc_closing_routine os.fsync(f_fd) OverflowError: Python int too large to convert to C int I suspect the file descriptor is being loaded from HDF5 with the wrong endianness. I can’t find anywhere this would be happening in pypet; I think it is a pandas.HDFStore bug. Note that pandas does not test big-endian support but will happily accept patches to improve it: https://github.com/pandas-dev/pandas/issues/4737#issuecomment-1090931741 For now, I plan to add “ExcludeArch: s390x” to python-pypet. This bug is the tracking bug required under https://docs.fedoraproject.org/en-US/packaging-guidelines/#_architecture_build_failures.
This is very likely the same bug described in: https://src.fedoraproject.org/rpms/python-pandas/blob/c29517a7d496f6fc200f55725de4223746c2b2de/f/python-pandas.spec#_631
This bug appears to have been reported against 'rawhide' during the Fedora Linux 40 development cycle. Changing version to 40.