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
Linked PRs
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.getcontextleaking some memory. Here's what I was doing: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:It seems both of these problems were caused by #123244
(@encukou, this needs
extension-modules,3.14and3.13)CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux
Output from running 'python -VV' on the command line:
No response
Linked PRs
decimal.getcontext()#123703decimal.getcontext()(GH-123703) #123774