Segfaults on Python 3.14.0b2
- Dominant language
- Python
- Stars
- 27
- Forks
- 20
- PR merge metrics
- No merged PRs in 30d
Description
**Describe the issue**:
Running the test suite on Python 3.14.0b2 results in a segmentation fault.
**Minimal Complete Verifiable Example**:
Working on Fedora 42:
```
$ git clone https://github.com/dask/crick.git
$ cd crick
$ python3.14 --version
Python 3.14.0b2
$ python3.14 -m venv _e
$ . _e/bin/activate
(_e) $ pip install -e .
(_e) $ pip install pytest numpy
(_e) $ pytest
============================================================================================ test session starts =============================================================================================
platform linux -- Python 3.14.0b2, pytest-8.4.0, pluggy-1.6.0 -- /home/ben/src/forks/crick/_e/bin/python3.14
cachedir: .pytest_cache
rootdir: /home/ben/src/forks/crick
configfile: setup.cfg
collected 99 items
crick/tests/test_space_saving.py::test_space_saving[float-data0] PASSED [ 1%]
crick/tests/test_space_saving.py::test_space_saving[int-data1] PASSED [ 2%]
crick/tests/test_space_saving.py::test_space_saving[object-data2] PASSED [ 3%]
crick/tests/test_space_saving.py::test_space_saving[object-data3] PASSED [ 4%]
crick/tests/test_space_saving.py::test_space_saving[object-data4] PASSED [ 5%]
crick/tests/test_space_saving.py::test_space_saving[float-data5] PASSED [ 6%]
crick/tests/test_space_saving.py::test_add_matches_update PASSED [ 7%]
crick/tests/test_space_saving.py::test_init PASSED [ 8%]
crick/tests/test_space_saving.py::test_algorithm PASSED [ 9%]
crick/tests/test_space_saving.py::test_object_reference_counting PASSED [ 10%]
crick/tests/test_space_saving.py::test_object_hash_errors PASSED [ 11%]
crick/tests/test_space_saving.py::test_weights Fatal Python error: Segmentation fault
Current thread 0x00007f0b8f820bc0 [pytest] (most recent call first):
File "/home/ben/src/forks/crick/crick/tests/test_space_saving.py", line 171 in test_weights
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/_pytest/python.py", line 156 in pytest_pyfunc_call
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/pluggy/_callers.py", line 121 in _multicall
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/pluggy/_manager.py", line 120 in _hookexec
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/pluggy/_hooks.py", line 512 in __call__
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/_pytest/python.py", line 1670 in runtest
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/_pytest/runner.py", line 178 in pytest_runtest_call
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/pluggy/_callers.py", line 121 in _multicall
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/pluggy/_manager.py", line 120 in _hookexec
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/pluggy/_hooks.py", line 512 in __call__
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/_pytest/runner.py", line 246 in
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/_pytest/runner.py", line 344 in from_call
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/_pytest/runner.py", line 245 in call_and_report
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/_pytest/runner.py", line 136 in runtestprotocol
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/_pytest/runner.py", line 117 in pytest_runtest_protocol
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/pluggy/_callers.py", line 121 in _multicall
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/pluggy/_manager.py", line 120 in _hookexec
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/pluggy/_hooks.py", line 512 in __call__
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/_pytest/main.py", line 367 in pytest_runtestloop
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/pluggy/_callers.py", line 121 in _multicall
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/pluggy/_manager.py", line 120 in _hookexec
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/pluggy/_hooks.py", line 512 in __call__
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/_pytest/main.py", line 343 in _main
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/_pytest/main.py", line 289 in wrap_session
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/_pytest/main.py", line 336 in pytest_cmdline_main
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/pluggy/_callers.py", line 121 in _multicall
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/pluggy/_manager.py", line 120 in _hookexec
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/pluggy/_hooks.py", line 512 in __call__
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/_pytest/config/__init__.py", line 175 in main
File "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/_pytest/config/__init__.py", line 201 in console_main
File "/home/ben/src/forks/crick/_e/bin/pytest", line 8 in
Current thread's C stack trace (most recent call first):
Binary file "/lib64/libpython3.14.so.1.0", at _Py_DumpStack+0x4c [0x7f0b8f31dee0]
Binary file "/lib64/libpython3.14.so.1.0", at +0x11e964 [0x7f0b8f31e964]
Binary file "/lib64/libc.so.6", at +0x19c30 [0x7f0b8f83bc30]
Binary file "/lib64/libpython3.14.so.1.0", at PyImport_ImportModuleLevelObject+0x2c3 [0x7f0b8f3cdfc3]
Binary file "/lib64/libpython3.14.so.1.0", at +0x1e12ad [0x7f0b8f3e12ad]
Binary file "/lib64/libpython3.14.so.1.0", at PyObject_CallFunction+0x134 [0x7f0b8f34ed44]
Binary file "/lib64/libpython3.14.so.1.0", at PyImport_Import+0x1f4 [0x7f0b8f3e0b04]
Binary file "/lib64/libpython3.14.so.1.0", at PyImport_ImportModule+0x20 [0x7f0b8f478910]
Binary file "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/numpy/_core/_multiarray_umath.cpython-314-x86_64-linux-gnu.so", at +0x19adfc [0x7f0b7ed9adfc]
Binary file "/home/ben/src/forks/crick/_e/lib64/python3.14/site-packages/numpy/_core/_multiarray_umath.cpython-314-x86_64-linux-gnu.so", at +0xa904b [0x7f0b7eca904b]
Binary file "/lib64/libpython3.14.so.1.0", at +0x1980c0 [0x7f0b8f3980c0]
Binary file "/lib64/libpython3.14.so.1.0", at PyObject_VectorcallMethod+0x90 [0x7f0b8f3e3ae0]
Binary file "/home/ben/src/forks/crick/crick/space_saving.cpython-314-x86_64-linux-gnu.so", at +0x18e6c [0x7f0b7fd31e6c]
Binary file "/lib64/libpython3.14.so.1.0", at PyObject_Vectorcall+0x37 [0x7f0b8f357967]
Binary file "/lib64/libpython3.14.so.1.0", at _PyEval_EvalFrameDefault+0xdc8 [0x7f0b8f36bbb8]
Binary file "/lib64/libpython3.14.so.1.0", at +0x1677e5 [0x7f0b8f3677e5]
Binary file "/lib64/libpython3.14.so.1.0", at +0x251da0 [0x7f0b8f451da0]
Binary file "/lib64/libpython3.14.so.1.0", at +0x2ace16 [0x7f0b8f4ace16]
Binary file "/lib64/libpython3.14.so.1.0", at _PyObject_MakeTpCall+0x36c [0x7f0b8f3539ac]
Binary file "/lib64/libpython3.14.so.1.0", at _PyEval_EvalFrameDefault+0x60e0 [0x7f0b8f370ed0]
Binary file "/lib64/libpython3.14.so.1.0", at +0x1677e5 [0x7f0b8f3677e5]
Binary file "/lib64/libpython3.14.so.1.0", at +0x251da0 [0x7f0b8f451da0]
Binary file "/lib64/libpython3.14.so.1.0", at +0x2ace16 [0x7f0b8f4ace16]
Binary file "/lib64/libpython3.14.so.1.0", at +0x265c9a [0x7f0b8f465c9a]
Binary file "/lib64/libpython3.14.so.1.0", at _PyEval_EvalFrameDefault+0x5d8b [0x7f0b8f370b7b]
Binary file "/lib64/libpython3.14.so.1.0", at +0x1677e5 [0x7f0b8f3677e5]
Binary file "/lib64/libpython3.14.so.1.0", at +0x251da0 [0x7f0b8f451da0]
Binary file "/lib64/libpython3.14.so.1.0", at +0x2ace16 [0x7f0b8f4ace16]
Binary file "/lib64/libpython3.14.so.1.0", at _PyObject_MakeTpCall+0x36c [0x7f0b8f3539ac]
Binary file "/lib64/libpython3.14.so.1.0", at _PyEval_EvalFrameDefault+0x60e0 [0x7f0b8f370ed0]
Binary file "/lib64/libpython3.14.so.1.0", at +0x1677e5 [0x7f0b8f3677e5]
Binary file "/lib64/libpython3.14.so.1.0", at +0x251da0 [0x7f0b8f451da0]
Extension modules: crick.numpy_version, numpy._core._multiarray_umath, numpy.linalg._umath_linalg, crick.space_saving, crick.stats, crick.tdigest, numpy.random._common, numpy.random.bit_generator, numpy.random._bounded_integers, numpy.random._pcg64, numpy.random._mt19937, numpy.random._generator, numpy.random._philox, numpy.random._sfc64, numpy.random.mtrand (total: 15)
Segmentation fault (core dumped)
```
**Anything else we need to know?**:
The same steps work on Python 3.13. It does not matter whether `pip install` is passed `-e` or not. I didn’t install `scipy` because it hasn’t released binary wheels for Python 3.14 yet.
Discussion is in progress in https://bugzilla.redhat.com/show_bug.cgi?id=2367454.
**Environment**:
- Dask version: N/A; crick `main`, 9d4bdb8b86709006297eb92d6cb3829298832906
- Python version: 3.14.0b2
- Operating System: Fedora 42, `x86_64`
- Install method (conda, pip, source): source
Contributor guide
Assessment
This issue has not been assessed yet.