Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32k
Open
Description
Bug report
Bug description:
I ran across this while profiling memory usage in#130771. The results are same for both that andlist
objects which use QSBR to free memory, so this is a QSBR thing. Note this is an extreme synthetic case, this CAN happen but does not mean it WILL happen in real-world apps.
Memory usage numbers:
VmHWMGIL 135104 kB - normal GIL-enabled baselinenoGIL 6702788 kB - free-threaded current QSBR behavior
Test script:
importthreadingfromqueueimportQueuedefthrdfunc(queue):whileTrue:l=queue.get()l.append(0)# force resize in non-parent thread which will free using _PyMem_FreeDelayed()queue=Queue(maxsize=2)threading.Thread(target=thrdfunc,args=(queue,)).start()whileTrue:l= [None]*int(3840*2160*3/8)# sys.getsizeof(l) ~= 3840*2160*3 bytesqueue.put(l)
See PR for proposed fix.
CPython versions tested on:
3.14
Operating systems tested on:
No response