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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions