Skip to content

[BUG] 3.3a1 binary wheels incompatible with 3.15b4, crashes interpreter #7847

Closed

Description

@jamadden

Describe the bug

The binary wheels on PyPI for 3.3a1 appear to be incompatible with the recently released (Jul 18) 3.15b4, leading to segfaults in the interpreter, at least when using the manylinux x86_64 images (quay.io/pypa/manylinux_2_28_x86_64:latest, Digest: sha256:a61875a2f84cab7df8de222ff12cabc08ff86eb4ad402ac90ba7bdaed9600cca)

Here's a project, running in manylinux that uses Cython in its setup.py. The command was python -m build -w (defaulting to using pip, and PIP_PRE=1 was set, so we got the binary wheels for 3.3a1):

* Creating isolated environment: venv+pip...
* Installing packages in isolated environment:
  - Cython >= 3.2.4
  - icrs.ip_addr >= 1.5.0
  - icrs.sqlite >= 1.9.0
  - setuptools_scm<8
  - wheel
* Getting build dependencies for wheel...
Fatal Python error: Segmentation fault

Current thread 0x00007ffffe845180 [python] (most recent call first):
  File "<frozen importlib._bootstrap>", line 549 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 1033 in exec_module
  File "<frozen importlib._bootstrap>", line 915 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1305 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1346 in _find_and_load
  File "/tmp/build-env-bm1utflp/lib/python3.15/site-packages/Cython/Build/Cache.py", line 7 in <module>
  File "<frozen importlib._bootstrap>", line 549 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 747 in exec_module
  File "<frozen importlib._bootstrap>", line 915 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1305 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1346 in _find_and_load
  File "/tmp/build-env-bm1utflp/lib/python3.15/site-packages/Cython/Build/Dependencies.py", line 9 in <module>
  File "<frozen importlib._bootstrap>", line 549 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 747 in exec_module
  File "<frozen importlib._bootstrap>", line 915 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1305 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1346 in _find_and_load
  File "/tmp/build-env-bm1utflp/lib/python3.15/site-packages/Cython/Build/__init__.py", line 1 in <module>
  File "<frozen importlib._bootstrap>", line 549 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 747 in exec_module
  File "<frozen importlib._bootstrap>", line 915 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1305 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1346 in _find_and_load
  File "<string>", line 4 in <module>
  File "/tmp/build-env-bm1utflp/lib/python3.15/site-packages/setuptools/build_meta.py", line 317 in run_setup
  File "/tmp/build-env-bm1utflp/lib/python3.15/site-packages/setuptools/build_meta.py", line 301 in _get_build_requires
  File "/tmp/build-env-bm1utflp/lib/python3.15/site-packages/setuptools/build_meta.py", line 333 in get_requires_for_build_wheel
  File "/opt/python/cp315-cp315/lib/python3.15/site-packages/pyproject_hooks/_in_process/_in_process.py", line 143 in get_requires_for_build_wheel
  File "/opt/python/cp315-cp315/lib/python3.15/site-packages/pyproject_hooks/_in_process/_in_process.py", line 373 in main
  File "/opt/python/cp315-cp315/lib/python3.15/site-packages/pyproject_hooks/_in_process/_in_process.py", line 389 in <module>

Current thread's C stack trace (most recent call first):
  Binary file "/tmp/build-env-bm1utflp/bin/python", at _Py_DumpStack+0x43 [0x643cc3]
  Binary file "/tmp/build-env-bm1utflp/bin/python" [0x65d462]
  Binary file "/lib64/libpthread.so.0", at +0x12990 [0x7fffff3b8990]
  Binary file "/tmp/build-env-bm1utflp/lib/python3.15/site-packages/Cython/Utils.cpython-315-x86_64-linux-gnu.so", at +0xeb30 [0x7ffffd4a9b30]
  Binary file "/tmp/build-env-bm1utflp/lib/python3.15/site-packages/Cython/Utils.cpython-315-x86_64-linux-gnu.so", at +0x9d43 [0x7ffffd4a4d43]
  Binary file "/tmp/build-env-bm1utflp/bin/python" [0x4d299c]
  Binary file "/tmp/build-env-bm1utflp/bin/python", at PyModule_ExecDef+0x9c [0x4d395c]
  Binary file "/tmp/build-env-bm1utflp/bin/python" [0x5fb4c1]
  Binary file "/tmp/build-env-bm1utflp/bin/python", at _PyEval_EvalFrameDefault+0x7382 [0x5b4ec2]
  Binary file "/tmp/build-env-bm1utflp/bin/python" [0x5bbf6e]
  Binary file "/tmp/build-env-bm1utflp/bin/python" [0x47d8a5]
  Binary file "/tmp/build-env-bm1utflp/bin/python", at PyObject_CallMethodObjArgs+0x108 [0x47eed8]
  Binary file "/tmp/build-env-bm1utflp/bin/python" [0x5fb420]
  Binary file "/tmp/build-env-bm1utflp/bin/python", at PyImport_ImportModuleLevelObject+0x11d [0x60072d]
  Binary file "/tmp/build-env-bm1utflp/bin/python", at _PyEval_ImportName+0x73 [0x5ac153]
  Binary file "/tmp/build-env-bm1utflp/bin/python", at _PyEval_EvalFrameDefault+0x504d [0x5b2b8d]
  Binary file "/tmp/build-env-bm1utflp/bin/python" [0x5bbf6e]
  Binary file "/tmp/build-env-bm1utflp/bin/python", at PyEval_EvalCode+0xe1 [0x5bc061]
  Binary file "/tmp/build-env-bm1utflp/bin/python" [0x5a4c83]
  Binary file "/tmp/build-env-bm1utflp/bin/python", at _PyEval_EvalFrameDefault+0x7382 [0x5b4ec2]
  Binary file "/tmp/build-env-bm1utflp/bin/python" [0x5bbf6e]
  Binary file "/tmp/build-env-bm1utflp/bin/python" [0x47d8a5]
  Binary file "/tmp/build-env-bm1utflp/bin/python", at PyObject_CallMethodObjArgs+0x108 [0x47eed8]
  Binary file "/tmp/build-env-bm1utflp/bin/python" [0x5fb420]
  Binary file "/tmp/build-env-bm1utflp/bin/python", at PyImport_ImportModuleLevelObject+0x11d [0x60072d]
  Binary file "/tmp/build-env-bm1utflp/bin/python", at _PyEval_ImportName+0x73 [0x5ac153]
  Binary file "/tmp/build-env-bm1utflp/bin/python", at _PyEval_EvalFrameDefault+0x504d [0x5b2b8d]
  Binary file "/tmp/build-env-bm1utflp/bin/python" [0x5bbf6e]
  Binary file "/tmp/build-env-bm1utflp/bin/python", at PyEval_EvalCode+0xe1 [0x5bc061]
  Binary file "/tmp/build-env-bm1utflp/bin/python" [0x5a4c83]
  Binary file "/tmp/build-env-bm1utflp/bin/python", at _PyEval_EvalFrameDefault+0x7382 [0x5b4ec2]
  Binary file "/tmp/build-env-bm1utflp/bin/python" [0x5bbf6e]
  <truncated rest of calls>

Extension modules: cython.cimports.libc.math, Cython.Utils (total: 2)
ERROR Backend subprocess exited when trying to invoke get_requires_for_build_wheel

Setting PIP_NO_BINARY=cython solved the problem. This previously worked with 3.15b3.

This was seen across multiple different proprietary projects so there's no common code snippet I can provide. But I can attempt to answer questions.

Maybe yank those wheels for now?

Code to reproduce the behaviour:

# example code

Expected behaviour

No response

OS

manylinux

Python version

3.15b4

Cython version

3.3.0a1

Additional context

No response

Activity

  1. da-woods commented on Jul 21, 2026

    @da-woods
    Collaborator

    Thanks. Yes it probably is too early to be releasing binary wheels for Python 3.15. I think it's only the release candidates where they promise any kind of compatibility.

    So I agree we should remove them. I don't think I can do it myself

  2. scoder commented on Jul 21, 2026

    @scoder
    Contributor

    I can remove the Py3.15 wheels later today.
    I was planning to prepare a new release since a couple of days already. Will see that I get it done soon.

  3. scoder commented on Jul 21, 2026

    @scoder
    Contributor

    I deleted the Py315 wheels. Installations should fall back to the non-binary Python wheel now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions