[PyQt] PyQt4 memory leak

Phil Thompson phil at riverbankcomputing.com
Fri Jul 19 11:06:33 BST 2013


On Mon, 15 Jul 2013 22:27:45 -0700, David Aguilar <davvid at gmail.com>
wrote:
> Matti Aarnio reported a memory leak in git-cola that I traced back to
> PyQt4.
> 
> I've attached a minimal reproducer.
> 
> I've tested this on Mac OS X and Debian/testing with PyQt4 4.9.x.
> 
> Matti's tried it on x86_64 Fedora 18, we see the same behavior there.
> 
> Everytime we hit the "Refresh" button more memory is consumed and
> never returned.
> 
> Is there anything we can do differently to allow the widgets to get
> cleaned up?
> 
> The add_items() call uses treewidget.takeItems() to make the old items
> go away, and then adds new items.  The old items do not seem to be
> getting cleaned up.

It's a SIP code generation bug - fix in tonight's snapshot.

A workaround may be to remove the items individually...

    while root.takeChild(0) is not None:
        pass

Thanks,
Phil


More information about the PyQt mailing list