Skip to content

[BUG] exc_type and exc_traceback have been removed from Python 3.11 in 4th alpha #4581

@hrnciar

Description

@hrnciar

Hello,

there is a new incompatibility between Cython and Python 3.11.0a4.

The interpreter state’s representation of handled exceptions (a.k.a exc_info, or _PyErr_StackItem)
now has only the exc_value field, exc_type and exc_traceback have been removed as 
their values can be derived from exc_value.

(Contributed by Irit Katriel in bpo-45711.)

Full traceback:

/builddir/build/BUILD/cython-0.29.26/Cython/Compiler/Scanning.c: In function ‘__Pyx_PyErr_GetTopmostException’:
/builddir/build/BUILD/cython-0.29.26/Cython/Compiler/Scanning.c:19461:21: error: ‘_PyErr_StackItem’ {aka ‘struct _err_stackitem’} has no member named ‘exc_type’
19461 |     while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) &&
      |                     ^~
/builddir/build/BUILD/cython-0.29.26/Cython/Compiler/Scanning.c:19461:51: error: ‘_PyErr_StackItem’ {aka ‘struct _err_stackitem’} has no member named ‘exc_type’
19461 |     while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) &&
      |                                                   ^~
/builddir/build/BUILD/cython-0.29.26/Cython/Compiler/Scanning.c: In function ‘__Pyx__ExceptionSave’:
/builddir/build/BUILD/cython-0.29.26/Cython/Compiler/Scanning.c:19475:21: error: ‘_PyErr_StackItem’ {aka ‘struct _err_stackitem’} has no member named ‘exc_type’
19475 |     *type = exc_info->exc_type;
      |                     ^~
/builddir/build/BUILD/cython-0.29.26/Cython/Compiler/Scanning.c:19477:19: error: ‘_PyErr_StackItem’ {aka ‘struct _err_stackitem’} has no member named ‘exc_traceback’
19477 |     *tb = exc_info->exc_traceback;
      |                   ^~
/builddir/build/BUILD/cython-0.29.26/Cython/Compiler/Scanning.c: In function ‘__Pyx__ExceptionReset’:
/builddir/build/BUILD/cython-0.29.26/Cython/Compiler/Scanning.c:19491:24: error: ‘_PyErr_StackItem’ {aka ‘struct _err_stackitem’} has no member named ‘exc_type’
19491 |     tmp_type = exc_info->exc_type;
      |                        ^~
/builddir/build/BUILD/cython-0.29.26/Cython/Compiler/Scanning.c:19493:22: error: ‘_PyErr_StackItem’ {aka ‘struct _err_stackitem’} has no member named ‘exc_traceback’
19493 |     tmp_tb = exc_info->exc_traceback;
      |                      ^~
/builddir/build/BUILD/cython-0.29.26/Cython/Compiler/Scanning.c:19494:13: error: ‘_PyErr_StackItem’ {aka ‘struct _err_stackitem’} has no member named ‘exc_type’
19494 |     exc_info->exc_type = type;
      |             ^~
/builddir/build/BUILD/cython-0.29.26/Cython/Compiler/Scanning.c:19496:13: error: ‘_PyErr_StackItem’ {aka ‘struct _err_stackitem’} has no member named ‘exc_traceback’
19496 |     exc_info->exc_traceback = tb;
      |             ^~
/builddir/build/BUILD/cython-0.29.26/Cython/Compiler/Scanning.c: In function ‘__Pyx__GetException’:
/builddir/build/BUILD/cython-0.29.26/Cython/Compiler/Scanning.c:19578:28: error: ‘_PyErr_StackItem’ {aka ‘struct _err_stackitem’} has no member named ‘exc_type’
19578 |         tmp_type = exc_info->exc_type;
      |                            ^~
/builddir/build/BUILD/cython-0.29.26/Cython/Compiler/Scanning.c:19580:26: error: ‘_PyErr_StackItem’ {aka ‘struct _err_stackitem’} has no member named ‘exc_traceback’
19580 |         tmp_tb = exc_info->exc_traceback;
      |                          ^~
/builddir/build/BUILD/cython-0.29.26/Cython/Compiler/Scanning.c:19581:17: error: ‘_PyErr_StackItem’ {aka ‘struct _err_stackitem’} has no member named ‘exc_type’
19581 |         exc_info->exc_type = local_type;
      |                 ^~
/builddir/build/BUILD/cython-0.29.26/Cython/Compiler/Scanning.c:19583:17: error: ‘_PyErr_StackItem’ {aka ‘struct _err_stackitem’} has no member named ‘exc_traceback’
19583 |         exc_info->exc_traceback = local_tb;

Downstream report: https://bugzilla.redhat.com/show_bug.cgi?id=2042360

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions