tests fail on s390x
- Dominant language
- Python
- Stars
- 211
- Forks
- 58
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 6
Description
When building the Fedora package for version 2.2.2, s390x fails with:
```
============================= test session starts ==============================
platform linux -- Python 3.12.0b4, pytest-7.3.2, pluggy-1.0.0 -- /usr/bin/python3
cachedir: .pytest_cache
rootdir: /builddir/build/BUILD/python-blosc2-2.2.2
configfile: pytest.ini
collecting ... collected 1023 items
tests/test_bytes_array.py::test_bytes_array[True-] PASSED [ 0%]
tests/test_bytes_array.py::test_bytes_array[True-1111111] PASSED [ 0%]
tests/test_bytes_array.py::test_bytes_array[False-] PASSED [ 0%]
tests/test_bytes_array.py::test_bytes_array[False-1111111] PASSED [ 0%]
tests/test_bytes_array.py::test_bytearray[data0] PASSED [ 0%]
tests/test_bytes_array.py::test_bytearray[data1] PASSED [ 0%]
tests/test_comp_info.py::test_comp_info[Codec.BLOSCLZ] PASSED [ 0%]
tests/test_comp_info.py::test_comp_info[Codec.LZ4] PASSED [ 0%]
tests/test_comp_info.py::test_comp_info[Codec.LZ4HC] PASSED [ 0%]
tests/test_comp_info.py::test_comp_info[Codec.ZLIB] PASSED [ 0%]
tests/test_comp_info.py::test_comp_info[Codec.ZSTD] PASSED [ 1%]
tests/test_compress2.py::test_compress2_numpy[obj0-cparams0-dparams0] PASSED [ 1%]
tests/test_compress2.py::test_compress2_numpy[obj1-cparams1-dparams1] PASSED [ 1%]
tests/test_compress2.py::test_compress2_numpy[obj2-cparams2-dparams2] PASSED [ 1%]
tests/test_compress2.py::test_compress2_numpy[obj3-cparams3-dparams3] PASSED [ 1%]
tests/test_compress2.py::test_compress2_numpy[obj4-cparams4-dparams4] PASSED [ 1%]
tests/test_compress2.py::test_compress2_numpy[obj5-cparams5-dparams5] PASSED [ 1%]
tests/test_compress2.py::test_compress2[7-cparams0-dparams0] PASSED [ 1%]
tests/test_compress2.py::test_compress2[641091-cparams1-dparams1] PASSED [ 1%]
tests/test_compress2.py::test_compress2[136-cparams2-dparams2] PASSED [ 1%]
tests/test_compress2.py::test_compress2[1231-cparams3-dparams3] PASSED [ 2%]
tests/test_compress2.py::test_raise_error[object0-cparams0-dparams0] PASSED [ 2%]
tests/test_compress2.py::test_raise_error[-cparams1-dparams1] PASSED [ 2%]
tests/test_compression_parameters.py::test_compression_parameters[2-0] PASSED [ 2%]
tests/test_compression_parameters.py::test_compression_parameters[1-30] PASSED [ 2%]
tests/test_compression_parameters.py::test_compression_parameters[4-5] PASSED [ 2%]
tests/test_compressors.py::test_compressors[Filter.NOFILTER-8-Codec.BLOSCLZ] PASSED [ 2%]
tests/test_compressors.py::test_compressors[Filter.NOFILTER-9-Codec.LZ4] PASSED [ 2%]
tests/test_compressors.py::test_compressors[Filter.NOFILTER-3-Codec.LZ4HC] PASSED [ 2%]
tests/test_compressors.py::test_compressors[Filter.NOFILTER-5-Codec.ZLIB] PASSED [ 2%]
tests/test_compressors.py::test_compressors[Filter.NOFILTER-2-Codec.ZSTD] PASSED [ 3%]
tests/test_compressors.py::test_compressors[Filter.SHUFFLE-8-Codec.BLOSCLZ] PASSED [ 3%]
tests/test_compressors.py::test_compressors[Filter.SHUFFLE-9-Codec.LZ4] PASSED [ 3%]
tests/test_compressors.py::test_compressors[Filter.SHUFFLE-3-Codec.LZ4HC] PASSED [ 3%]
tests/test_compressors.py::test_compressors[Filter.SHUFFLE-5-Codec.ZLIB] PASSED [ 3%]
tests/test_compressors.py::test_compressors[Filter.SHUFFLE-2-Codec.ZSTD] PASSED [ 3%]
tests/test_compressors.py::test_compressors[Filter.BITSHUFFLE-8-Codec.BLOSCLZ] PASSED [ 3%]
tests/test_compressors.py::test_compressors[Filter.BITSHUFFLE-9-Codec.LZ4] PASSED [ 3%]
tests/test_compressors.py::test_compressors[Filter.BITSHUFFLE-3-Codec.LZ4HC] PASSED [ 3%]
tests/test_compressors.py::test_compressors[Filter.BITSHUFFLE-5-Codec.ZLIB] PASSED [ 3%]
tests/test_compressors.py::test_compressors[Filter.BITSHUFFLE-2-Codec.ZSTD] PASSED [ 4%]
tests/test_compressors.py::test_compressors[Filter.DELTA-8-Codec.BLOSCLZ] PASSED [ 4%]
tests/test_compressors.py::test_compressors[Filter.DELTA-9-Codec.LZ4] PASSED [ 4%]
tests/test_compressors.py::test_compressors[Filter.DELTA-3-Codec.LZ4HC] PASSED [ 4%]
tests/test_compressors.py::test_compressors[Filter.DELTA-5-Codec.ZLIB] PASSED [ 4%]
tests/test_compressors.py::test_compressors[Filter.DELTA-2-Codec.ZSTD] PASSED [ 4%]
tests/test_compressors.py::test_compressors[Filter.TRUNC_PREC-8-Codec.BLOSCLZ] PASSED [ 4%]
tests/test_compressors.py::test_compressors[Filter.TRUNC_PREC-9-Codec.LZ4] PASSED [ 4%]
tests/test_compressors.py::test_compressors[Filter.TRUNC_PREC-3-Codec.LZ4HC] PASSED [ 4%]
tests/test_compressors.py::test_compressors[Filter.TRUNC_PREC-5-Codec.ZLIB] PASSED [ 4%]
tests/test_compressors.py::test_compressors[Filter.TRUNC_PREC-2-Codec.ZSTD] PASSED [ 4%]
tests/test_compressors.py::test_compressors[Filter.NDCELL-8-Codec.BLOSCLZ] PASSED [ 5%]
tests/test_compressors.py::test_compressors[Filter.NDCELL-9-Codec.LZ4] PASSED [ 5%]
tests/test_compressors.py::test_compressors[Filter.NDCELL-3-Codec.LZ4HC] PASSED [ 5%]
tests/test_compressors.py::test_compressors[Filter.NDCELL-5-Codec.ZLIB] PASSED [ 5%]
tests/test_compressors.py::test_compressors[Filter.NDCELL-2-Codec.ZSTD] PASSED [ 5%]
tests/test_compressors.py::test_compressors[Filter.NDMEAN-8-Codec.BLOSCLZ] PASSED [ 5%]
tests/test_compressors.py::test_compressors[Filter.NDMEAN-9-Codec.LZ4] PASSED [ 5%]
tests/test_compressors.py::test_compressors[Filter.NDMEAN-3-Codec.LZ4HC] PASSED [ 5%]
tests/test_compressors.py::test_compressors[Filter.NDMEAN-5-Codec.ZLIB] PASSED [ 5%]
tests/test_compressors.py::test_compressors[Filter.NDMEAN-2-Codec.ZSTD] PASSED [ 5%]
tests/test_compressors.py::test_compressors[Filter.BYTEDELTA-8-Codec.BLOSCLZ] PASSED [ 6%]
tests/test_compressors.py::test_compressors[Filter.BYTEDELTA-9-Codec.LZ4] PASSED [ 6%]
tests/test_compressors.py::test_compressors[Filter.BYTEDELTA-3-Codec.LZ4HC] PASSED [ 6%]
tests/test_compressors.py::test_compressors[Filter.BYTEDELTA-5-Codec.ZLIB] PASSED [ 6%]
tests/test_compressors.py::test_compressors[Filter.BYTEDELTA-2-Codec.ZSTD] PASSED [ 6%]
tests/test_decompress.py::test_decompress_numpy[object0-Codec.LZ4] PASSED [ 6%]
tests/test_decompress.py::test_decompress_numpy[object1-Codec.BLOSCLZ] PASSED [ 6%]
tests/test_decompress.py::test_decompress_numpy[object2-Codec.LZ4HC] PASSED [ 6%]
tests/test_decompress.py::test_decompress_numpy[object3-Codec.ZLIB] PASSED [ 6%]
tests/test_decompress.py::test_decompress_numpy[object4-Codec.ZSTD] PASSED [ 6%]
tests/test_decompress.py::test_decompress[object0-Codec.LZ4] PASSED [ 7%]
tests/test_decompress.py::test_decompress[object1-Codec.BLOSCLZ] PASSED [ 7%]
tests/test_decompress.py::test_decompress[A string-Codec.LZ4HC] PASSED [ 7%]
tests/test_decompress.py::test_decompress[object3-Codec.ZSTD] PASSED [ 7%]
tests/test_decompress.py::test_raise_error[object0-Codec.LZ4] PASSED [ 7%]
tests/test_decompress.py::test_raise_error[-Codec.ZLIB] PASSED [ 7%]
tests/test_iterchunks.py::test_iterchunks[cparams0-dparams0-0-None-True] PASSED [ 7%]
tests/test_iterchunks.py::test_iterchunks[cparams0-dparams0-0-None-False] PASSED [ 7%]
tests/test_iterchunks.py::test_iterchunks[cparams0-dparams0-0-b2frame-True] PASSED [ 7%]
tests/test_iterchunks.py::test_iterchunks[cparams0-dparams0-0-b2frame-False] PASSED [ 7%]
tests/test_iterchunks.py::test_iterchunks[cparams1-dparams1-1-None-True] FAILED [ 8%]
tests/test_iterchunks.py::test_iterchunks[cparams1-dparams1-1-None-False] PASSED [ 8%]
tests/test_iterchunks.py::test_iterchunks[cparams1-dparams1-1-b2frame-True] FAILED [ 8%]
tests/test_iterchunks.py::test_iterchunks[cparams1-dparams1-1-b2frame-False] FAILED [ 8%]
tests/test_iterchunks.py::test_iterchunks[cparams2-dparams2-5-None-True] FAILED [ 8%]
tests/test_iterchunks.py::test_iterchunks[cparams2-dparams2-5-None-False] PASSED [ 8%]
tests/test_iterchunks.py::test_iterchunks[cparams2-dparams2-5-b2frame-True] FAILED [ 8%]
tests/test_iterchunks.py::test_iterchunks[cparams2-dparams2-5-b2frame-False] FAILED [ 8%]
tests/test_iterchunks.py::test_iterchunks[cparams3-dparams3-10-None-True] FAILED [ 8%]
tests/test_iterchunks.py::test_iterchunks[cparams3-dparams3-10-None-False] PASSED [ 8%]
tests/test_iterchunks.py::test_iterchunks[cparams3-dparams3-10-b2frame-True] Fatal Python error: Segmentation fault
Current thread 0x000003ff9ebf7720 (most recent call first):
File "/builddir/build/BUILDROOT/python-blosc2-2.2.2-3.fc39.s390x/usr/lib64/python3.12/site-packages/blosc2/schunk.py", line 520 in get_slice
File "/builddir/build/BUILDROOT/python-blosc2-2.2.2-3.fc39.s390x/usr/lib64/python3.12/site-packages/blosc2/schunk.py", line 625 in iterchunks
File "/builddir/build/BUILD/python-blosc2-2.2.2/tests/test_iterchunks.py", line 38 in test_iterchunks
File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 194 in pytest_pyfunc_call
File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 39 in _multicall
File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 80 in _hookexec
File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 265 in __call__
File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1799 in runtest
File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 169 in pytest_runtest_call
File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 39 in _multicall
File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 80 in _hookexec
File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 265 in __call__
File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 262 in
File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341 in from_call
File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 261 in call_runtest_hook
File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 222 in call_and_report
File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 133 in runtestprotocol
File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 114 in pytest_runtest_protocol
File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 39 in _multicall
File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 80 in _hookexec
File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 265 in __call__
File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 348 in pytest_runtestloop
File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 39 in _multicall
File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 80 in _hookexec
File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 265 in __call__
File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 323 in _main
File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 269 in wrap_session
File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 316 in pytest_cmdline_main
File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 39 in _multicall
File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 80 in _hookexec
File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 265 in __call__
File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 166 in main
File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 189 in console_main
File "/usr/bin/pytest", line 8 in
Extension modules: numpy.core._multiarray_umath, numpy.core._multiarray_tests, numpy.linalg._umath_linalg, numpy.fft._pocketfft_internal, numpy.random._common, numpy.random.bit_generator, numpy.random._bounded_integers, numpy.random._mt19937, numpy.random.mtrand, numpy.random._philox, numpy.random._pcg64, numpy.random._sfc64, numpy.random._generator, msgpack._cmsgpack, blosc2.blosc2_ext, ndindex.ndindex, ndindex.shapetools, ndindex._crt, ndindex.subindex_helpers, ndindex.array, ndindex.ellipsis, ndindex.newaxis, ndindex.integer, ndindex.booleanarray, ndindex.integerarray, ndindex.tuple, ndindex.slice, ndindex.chunking, ndindex._version, ndindex, psutil._psutil_linux, psutil._psutil_posix (total: 32)
/var/tmp/rpm-tmp.Zehlg7: line 52: 708 Segmentation fault (core dumped) CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}" PATH="/builddir/build/BUILDROOT/python-blosc2-2.2.2-3.fc39.s390x/usr/bin:$PATH" PYTHONPATH="${PYTHONPATH:-/builddir/build/BUILDROOT/python-blosc2-2.2.2-3.fc39.s390x/usr/lib64/python3.12/site-packages:/builddir/build/BUILDROOT/python-blosc2-2.2.2-3.fc39.s390x/usr/lib/python3.12/site-packages}" PYTHONDONTWRITEBYTECODE=1 PYTEST_ADDOPTS="${PYTEST_ADDOPTS:-} --ignore=/builddir/build/BUILD/python-blosc2-2.2.2/.pyproject-builddir" PYTEST_XDIST_AUTO_NUM_WORKERS=3 /usr/bin/pytest tests/ -v
```
This is with python3-3.12.0~b4-1.fc39 and python3-numpy-1:1.24.3-2.fc39.
Unfortunately I can't provide much more information than this, I don't have access to the machine. I'd be happy to try patches though :)
Contributor guide
Research direction
Start with tests/test_iterchunks.py and reproduce the failures under s390x using pytest. Trace the reported crash through blosc2/schunk.py, especially get_slice and iterchunks, and compare the failing parameter combinations with the passing ones. Done means the iterchunks tests pass without failures or segmentation faults on s390x.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- operating-systems, testing-qa
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100