Skip to content

[Python] Multiple warnings and asserts triggered in debug CPython 3.11 #33765

@vient

Description

@vient

Describe the bug, including details regarding any error messages, version, and platform.

CPython can be built in debug mode to catch some maybe-fatal-maybe-not errors. We have such python3.11 configured with --with-pydebug and pyarrow 10.0.1 installed, here is an example of gc warning

>>> import pyarrow as pa
>>> table = pa.table({'a': [1]})
gc:0: ResourceWarning: Object of type pyarrow.lib.Int64Array is not untracked before destruction

similar code sometimes triggers assertion

gc:0: ResourceWarning: Object of type pyarrow.lib.UInt16Array is not untracked before destruction
Modules/gcmodule.c:442: update_refs: Assertion "gc_get_refs(gc) != 0" failed
Enable tracemalloc to get the memory block allocation traceback

object address  : 0x7f804e8762e0
object refcount : 0
object type     : 0x7f80fcc3f5e0
object type name: pyarrow.lib.UInt16Array
object repr     : <refcnt 0 at 0x7f804e8762e0>

Fatal Python error: _PyObject_AssertFailed: _PyObject_AssertFailed
Python runtime state: initialized

Another crash

>>> import pyarrow as pa
>>> pa.table({0: []})
python: Objects/typeobject.c:1068: type_call: Assertion `!_PyErr_Occurred(tstate)' failed.
Aborted (core dumped)

Component(s)

Python

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