[Python] Debian job on i386 segfaults when running Python tests
- Dominant language
- C++
- Stars
- 17.1k
- Forks
- 4.3k
- Avg merge
- 3d 13h
- Merged PRs (30d)
- 88
Description
### Describe the bug, including details regarding any error messages, version, and platform.
The [test-debian-13-python-3-i386](https://github.com/ursacomputing/crossbow/actions/runs/29889191727/job/88826043097) nightly job is segfaulting with the following error when running tests:
```
+ pytest -r s --pyargs pyarrow
mimalloc: warning: unable to allocate aligned OS memory directly, fall back to over-allocation (size: 0x8000000 bytes, address: 0xDC93D000, alignment: 0x8000, commit: 1)
============================= test session starts ==============================
platform linux -- Python 3.13.5, pytest-9.1.1, pluggy-1.6.0
rootdir: /
plugins: xdist-3.8.0, hypothesis-6.158.1
collected 8275 items / 3 skipped
arrow-dev/lib/python3.13/site-packages/pyarrow/tests/interchange/test_conversion.py . [ 0%]
Fatal Python error: Segmentation fault
Current thread 0xf4184700 (most recent call first):
File "/arrow-dev/lib/python3.13/site-packages/pandas/core/construction.py", line 503 in ensure_wrapped_if_datetimelike
File "/arrow-dev/lib/python3.13/site-packages/pandas/core/internals/blocks.py", line 2204 in maybe_coerce_values
File "/arrow-dev/lib/python3.13/site-packages/pandas/core/internals/api.py", line 75 in _make_block
File "/arrow-dev/lib/python3.13/site-packages/pandas/api/internals.py", line 59 in create_dataframe_from_blocks
File "/arrow-dev/lib/python3.13/site-packages/pyarrow/pandas_compat.py", line 835 in table_to_dataframe
File "/arrow-dev/lib/python3.13/site-packages/pandas/core/interchange/from_dataframe.py", line 118 in from_dataframe
File "/arrow-dev/lib/python3.13/site-packages/pyarrow/tests/interchange/test_conversion.py", line 284 in test_pandas_roundtrip_datetime
File "/arrow-dev/lib/python3.13/site-packages/_pytest/python.py", line 167 in pytest_pyfunc_call
File "/arrow-dev/lib/python3.13/site-packages/pluggy/_callers.py", line 121 in _multicall
File "/arrow-dev/lib/python3.13/site-packages/pluggy/_manager.py", line 120 in _hookexec
File "/arrow-dev/lib/python3.13/site-packages/pluggy/_hooks.py", line 512 in __call__
File "/arrow-dev/lib/python3.13/site-packages/_pytest/python.py", line 1707 in runtest
File "/arrow-dev/lib/python3.13/site-packages/_pytest/runner.py", line 184 in pytest_runtest_call
File "/arrow-dev/lib/python3.13/site-packages/pluggy/_callers.py", line 121 in _multicall
File "/arrow-dev/lib/python3.13/site-packages/pluggy/_manager.py", line 120 in _hookexec
File "/arrow-dev/lib/python3.13/site-packages/pluggy/_hooks.py", line 512 in __call__
File "/arrow-dev/lib/python3.13/site-packages/_pytest/runner.py", line 250 in
File "/arrow-dev/lib/python3.13/site-packages/_pytest/runner.py", line 361 in from_call
File "/arrow-dev/lib/python3.13/site-packages/_pytest/runner.py", line 249 in call_and_report
File "/arrow-dev/lib/python3.13/site-packages/_pytest/runner.py", line 139 in runtestprotocol
File "/arrow-dev/lib/python3.13/site-packages/_pytest/runner.py", line 118 in pytest_runtest_protocol
File "/arrow-dev/lib/python3.13/site-packages/pluggy/_callers.py", line 121 in _multicall
File "/arrow-dev/lib/python3.13/site-packages/pluggy/_manager.py", line 120 in _hookexec
File "/arrow-dev/lib/python3.13/site-packages/pluggy/_hooks.py", line 512 in __call__
File "/arrow-dev/lib/python3.13/site-packages/_pytest/main.py", line 408 in pytest_runtestloop
File "/arrow-dev/lib/python3.13/site-packages/pluggy/_callers.py", line 121 in _multicall
File "/arrow-dev/lib/python3.13/site-packages/pluggy/_manager.py", line 120 in _hookexec
File "/arrow-dev/lib/python3.13/site-packages/pluggy/_hooks.py", line 512 in __call__
File "/arrow-dev/lib/python3.13/site-packages/_pytest/main.py", line 384 in _main
File "/arrow-dev/lib/python3.13/site-packages/_pytest/main.py", line 330 in wrap_session
File "/arrow-dev/lib/python3.13/site-packages/_pytest/main.py", line 377 in pytest_cmdline_main
File "/arrow-dev/lib/python3.13/site-packages/pluggy/_callers.py", line 121 in _multicall
File "/arrow-dev/lib/python3.13/site-packages/pluggy/_manager.py", line 120 in _hookexec
File "/arrow-dev/lib/python3.13/site-packages/pluggy/_hooks.py", line 512 in __call__
File "/arrow-dev/lib/python3.13/site-packages/_pytest/config/__init__.py", line 229 in _main
File "/arrow-dev/lib/python3.13/site-packages/_pytest/config/__init__.py", line 253 in _console_main
File "/arrow-dev/bin/pytest", line 6 in
Extension modules: numpy._core._multiarray_umath, numpy.linalg._umath_linalg, pyarrow.lib, pyarrow._fs, pyarrow._azurefs, pyarrow._hdfs, pyarrow._gcsfs, cython.cimports.libc.math, pyarrow._compute, pyarrow._acero, pyarrow._csv, pyarrow._json, pyarrow._substrait, numpy.random._common, numpy.random.bit_generator, numpy.random._bounded_integers, numpy.random._pcg64, numpy.random._generator, numpy.random._mt19937, numpy.random._philox, numpy.random._sfc64, numpy.random.mtrand, _cyutility, pandas._libs._cyutility, pandas._libs.tslibs.ccalendar, pandas._libs.tslibs.np_datetime, pandas._libs.tslibs.dtypes, pandas._libs.tslibs.base, pandas._libs.tslibs.nattype, pandas._libs.tslibs.timezones, pandas._libs.properties, pandas._libs.tslibs.fields, pandas._libs.tslibs.timedeltas, pandas._libs.tslibs.tzconversion, pandas._libs.tslibs.timestamps, pandas._libs.tslibs.offsets, pandas._libs.tslibs.strptime, pandas._libs.tslibs.parsing, pandas._libs.tslibs.conversion, pandas._libs.tslibs.period, pandas._libs.tslibs.vectorized, pandas._libs.ops_dispatch, pandas._libs.missing, pandas._libs.hashtable, pandas._libs.algos, pandas._libs.interval, pandas._libs.lib, pandas._libs.ops, pandas._libs.hashing, pandas._libs.arrays, pandas._libs.tslib, pandas._libs.sparse, pandas._libs.internals, pandas._libs.indexing, pandas._libs.index, pandas._libs.writers, pandas._libs.join, pandas._libs.window.aggregations, pandas._libs.window.indexers, pandas._libs.reshape, pandas._libs.groupby, pandas._libs.json, pandas._libs.parsers, pandas._libs.testing, pyarrow._dataset, pyarrow._dataset_orc, pyarrow._parquet, pyarrow._parquet_encryption, pyarrow._dataset_parquet_encryption, pyarrow._dataset_parquet, pyarrow._orc, pyarrow._flight, _cffi_backend, pyarrow._pyarrow_cpp_tests, pyarrow._feather (total: 75)
/arrow/ci/scripts/python_test.sh: line 76: 11805 Segmentation fault (core dumped) pytest -r s "${PYTEST_ARGS_ARRAY[@]}" --pyargs pyarrow
Error: `docker compose --file=/home/runner/work/crossbow/crossbow/arrow/compose.yaml run --rm -e SETUPTOOLS_SCM_PRETEND_VERSION=26.0.0.dev31 -e ARROW_S3=OFF -e ARROW_GANDIVA=OFF debian-python` exited with a non-zero exit code 139, see the process log above.
```
### Component(s)
Python
Contributor guide
Research direction
Start by reproducing the test-debian-13-python-3-i386 nightly failure, focusing on pyarrow/tests/interchange/test_conversion.py::test_pandas_roundtrip_datetime and the stack trace through pyarrow/pandas_compat.py. Compare the i386 behavior with other platforms and determine what change prevents the segmentation fault while keeping the full Python test job passing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, pandas, python
- Domain
- data, testing
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100