[PyQt] PyQt4 memory leak

David Aguilar davvid at gmail.com
Thu Aug 1 05:46:54 BST 2013


On Fri, Jul 19, 2013 at 3:06 AM, Phil Thompson
<phil at riverbankcomputing.com> wrote:
> 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

Thanks as always, Phil.  I'll switch over to this construct until the
distros have a chance to catch up with the latest sip ;-)

cheers,
-- 
David


More information about the PyQt mailing list