Closed
Description
Crash report
What happened?
cc @godlygeek, who helped me find this
I was investigating a reference leak on the asyncio test suite, and I came across decimal.getcontext
leaking some memory. Here's what I was doing:
$ ./python -Xshowrefcount -c "import decimal; decimal.getcontext()"
[207 refs, 0 blocks]
This is a problem in itself, since this is a leak, but after configuring with --with-decimal-contextvar=no
, then the above code fails with a negative reference count:
Python/gc.c:92: gc_decref: Assertion "gc_get_refs(g) > 0" failed: refcount is too small
Enable tracemalloc to get the memory block allocation traceback
object address : 0x5d3d7d336490
object refcount : 1
object type : 0x5d3d7d4acd50
object type name: decimal.Context
object repr : Context(prec=28, rounding=ROUND_HALF_EVEN, Emin=-999999, Emax=999999, capitals=1, clamp=0, flags=[], traps=[InvalidOperation, DivisionByZero, Overflow])
It seems both of these problems were caused by #123244
(@encukou, this needs extension-modules
, 3.14
and 3.13
)
CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux
Output from running 'python -VV' on the command line:
No response