KZoneAllocator static in KCompletion crashes on exit

Kevin Funk kfunk at kde.org
Mon Feb 10 11:14:31 GMT 2014


Am Montag, 10. Februar 2014, 01:28:03 schrieb Thomas L├╝bking:
> On Sonntag, 9. Februar 2014 22:16:16 CEST, Albert Astals Cid wrote:
> > So while exiting krecipes i get
> > 
> > ==15297== Invalid read of size 8
> > ==15297==    at 0xABE051C: QString::vsprintf(char const*,
> > __va_list_tag*) (in
> > /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6)
> > ==15297==    by 0xAB87F94: qt_message(QtMsgType, char const*,
> > __va_list_tag*) (in
> > /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6)
> > ==15297==    by 0xAB88190: qDebug(char const*, ...) (in
> > /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6)
> > ==15297==    by 0xA59AC14: KZoneAllocator::~KZoneAllocator()
> > (kallocator.cpp:110)
> 
> https://git.reviewboard.kde.org/r/114715/ ?
> 
> Cheers,
> Thomas

Hey Albert,

(Actually I replied much earlier, but KMail refused to send the mail somehow)

It's interesting that you can reproduce this on a Linux system, I never got 
that far.

What version of kdelibs are you running? This particular issue should indeed 
be fixed in v4.12.2 and KF5. The KZoneAllocator instance in KCompTreeNode got 
turned into 'static QSharedPointer<KZoneAllocator> alloc' member and 
KCompTreeNode instances are now keeping strong-refs to it to avoid the 
allocator (along its provided memory pool) being deleted too early.

I also replaced the qDebug usage with printfs because I got similar crashes at 
shutdown.

Greets

-- 
Kevin Funk




More information about the kde-core-devel mailing list