Bug 2244500 - Many python-pypet tests fail on s390x due to apparent endian issues in pandas.HDFStore
Summary: Many python-pypet tests fail on s390x due to apparent endian issues in pandas...
Keywords:
Status: NEW
Alias: None
Product: Fedora
Classification: Fedora
Component: python-pypet
Version: 40
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Ankur Sinha (FranciscoD)
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: F-ExcludeArch-s390x
TreeView+ depends on / blocked
 
Reported: 2023-10-16 15:40 UTC by Ben Beasley
Modified: 2024-02-15 22:59 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Ben Beasley 2023-10-16 15:40:42 UTC
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.

Comment 1 Ben Beasley 2023-10-16 15:49:40 UTC
This is very likely the same bug described in:

https://src.fedoraproject.org/rpms/python-pandas/blob/c29517a7d496f6fc200f55725de4223746c2b2de/f/python-pandas.spec#_631

Comment 2 Aoife Moloney 2024-02-15 22:59:35 UTC
This bug appears to have been reported against 'rawhide' during the Fedora Linux 40 development cycle.
Changing version to 40.


Note You need to log in before you can comment on or make changes to this bug.