Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Assertion failures from _interpchannels._register_end_types #127234

Open
devdanzin opened this issue Nov 24, 2024 · 1 comment
Open

Assertion failures from _interpchannels._register_end_types #127234

devdanzin opened this issue Nov 24, 2024 · 1 comment
Labels
3.13 bugs and security fixes 3.14 new features, bugs and security fixes extension-modules C modules in the Modules dir topic-subinterpreters type-crash A hard crash of the interpreter, possibly with a core dump

Comments

@devdanzin
Copy link
Contributor

devdanzin commented Nov 24, 2024

Crash report

What happened?

It's possible to abort a debug build by calling _interpchannels._register_end_types with invalid values:

import _interpchannels

_interpchannels._register_end_types(int, int)

Abort on 3.13:

python: Python/crossinterp_data_lookup.h:260: _PyCrossInterpreterData_RegisterClass: Assertion `matched->getdata == getdata' failed.
Aborted

Abort on main:

python: Python/crossinterp_data_lookup.h:271: _PyXIData_RegisterClass: Assertion `matched->getdata == getdata' failed.
Aborted

Found using fusil by @vstinner.

CPython versions tested on:

3.13, 3.14, CPython main branch

Operating systems tested on:

Linux

Output from running 'python -VV' on the command line:

Python 3.13.0+ (heads/3.13:746a0c5, Nov 20 2024, 21:39:05) [GCC 13.2.0]

@devdanzin devdanzin added the type-crash A hard crash of the interpreter, possibly with a core dump label Nov 24, 2024
@ZeroIntensity ZeroIntensity added extension-modules C modules in the Modules dir 3.13 bugs and security fixes 3.14 new features, bugs and security fixes labels Nov 25, 2024
@ZeroIntensity
Copy link
Member

I'm not sure this is worth fixing. _interpchannels is completely private--the difference with _intepreters is that it's eventually going to be exposed publicly with PEP 734 as a wrapper over it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3.13 bugs and security fixes 3.14 new features, bugs and security fixes extension-modules C modules in the Modules dir topic-subinterpreters type-crash A hard crash of the interpreter, possibly with a core dump
Projects
Status: Todo
Development

No branches or pull requests

2 participants