Review Request: Fix crash on statusbarextension destruction

Andras Mantia amantia at kde.org
Wed Nov 9 21:40:02 GMT 2011


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/103098/
-----------------------------------------------------------

Review request for kdelibs.


Description
-------

With master, Qt 4.8 and kwebkitpart recently I run into crashes when I close tabs holding web pages inside akregator. With the patch, it doesn't crash (as it doesn't try to access parent() from the destructor).

The BT is here:

Application: Akregator (akregator), signal: Segmentation fault
[Current thread is 1 (Thread 0x7f8eebe5f760 (LWP 17084))]

Thread 4 (Thread 0x7f8ecb314700 (LWP 17090)):
#0  0x00007f8ee4c336f9 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f8ee4eef649 in QWaitConditionPrivate::wait (this=0x1956ec0, time=30000) at thread/qwaitcondition_unix.cpp:84
#2  0x00007f8ee4eef40d in QWaitCondition::wait (this=0x19ba150, mutex=0x19ba148, time=30000) at thread/qwaitcondition_unix.cpp:158
#3  0x00007f8ee4edd285 in QThreadPoolThread::run (this=0x19b5810) at concurrent/qthreadpool.cpp:141
#4  0x00007f8ee4eee0b6 in QThreadPrivate::start (arg=0x19b5810) at thread/qthread_unix.cpp:298
#5  0x00007f8ecd69a9e3 in ?? () from /usr/X11R6/lib64/libGL.so.1
#6  0x00007f8ee4c2ea3f in start_thread () from /lib64/libpthread.so.0
#7  0x00007f8ee3c7366d in clone () from /lib64/libc.so.6
#8  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f8ec968f700 (LWP 17109)):
#0  0x00007f8ee4c3338c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f8ed31d8321 in WTF::TCMalloc_PageHeap::scavengerThread() () from //opt/qt4/lib/libQtWebKit.so.4
#2  0x00007f8ed31d78dc in WTF::TCMalloc_PageHeap::runScavengerThread(void*) () from //opt/qt4/lib/libQtWebKit.so.4
#3  0x00007f8ecd69a9e3 in ?? () from /usr/X11R6/lib64/libGL.so.1
#4  0x00007f8ee4c2ea3f in start_thread () from /lib64/libpthread.so.0
#5  0x00007f8ee3c7366d in clone () from /lib64/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f8ec86d7700 (LWP 17110)):
#0  0xffffffffff600177 in ?? ()
#1  0x00007fff885ff7a1 in ?? ()
#2  0x00007f8eddf122b3 in clock_gettime () from /lib64/librt.so.1
#3  0x00007f8ee4f5be26 in do_gettime (sec=0x7f8ec86d6948, frac=0x7f8ec86d6940) at tools/qelapsedtimer_unix.cpp:123
#4  0x00007f8ee4f5be82 in qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#5  0x00007f8ee50602de in QTimerInfoList::updateCurrentTime (this=0x7193730) at kernel/qeventdispatcher_unix.cpp:343
#6  0x00007f8ee5060792 in QTimerInfoList::timerWait (this=0x7193730, tm=...) at kernel/qeventdispatcher_unix.cpp:450
#7  0x00007f8ee505cfd4 in timerSourcePrepareHelper (src=0x71936d0, timeout=0x7f8ec86d6acc) at kernel/qeventdispatcher_glib.cpp:136
#8  0x00007f8ee505d28d in idleTimerSourcePrepare (source=0x71a3110, timeout=0x7f8ec86d6acc) at kernel/qeventdispatcher_glib.cpp:216
#9  0x00007f8eddc61087 in g_main_context_prepare () from /lib64/libglib-2.0.so.0
#10 0x00007f8eddc61fa9 in ?? () from /lib64/libglib-2.0.so.0
#11 0x00007f8eddc62650 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#12 0x00007f8ee505dd14 in QEventDispatcherGlib::processEvents (this=0x6833680, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#13 0x00007f8ee501e9ae in QEventLoop::processEvents (this=0x7f8ec86d6cf0, flags=...) at kernel/qeventloop.cpp:149
#14 0x00007f8ee501eb38 in QEventLoop::exec (this=0x7f8ec86d6cf0, flags=...) at kernel/qeventloop.cpp:204
#15 0x00007f8ee4eeb731 in QThread::exec (this=0x6995320) at thread/qthread.cpp:501
#16 0x00007f8ee4eeb8d0 in QThread::run (this=0x6995320) at thread/qthread.cpp:568
#17 0x00007f8ee4eee0b6 in QThreadPrivate::start (arg=0x6995320) at thread/qthread_unix.cpp:298
#18 0x00007f8ecd69a9e3 in ?? () from /usr/X11R6/lib64/libGL.so.1
#19 0x00007f8ee4c2ea3f in start_thread () from /lib64/libpthread.so.0
#20 0x00007f8ee3c7366d in clone () from /lib64/libc.so.6
#21 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f8eebe5f760 (LWP 17084)):
[KCrash Handler]
#6  0x0000000000000000 in ?? ()
#7  0x00007f8eeba82873 in KParts::StatusBarExtension::statusBar (this=0x6c243a0) at /encrypted/home/andris/development/sources/kde-trunk/kdelibs/kparts/statusbarextension.cpp:149
#8  0x00007f8eeba82544 in KParts::StatusBarExtension::~StatusBarExtension (this=0x6c243a0, __in_chrg=<value optimized out>) at /encrypted/home/andris/development/sources/kde-trunk/kdelibs/kparts/statusbarextension.cpp:99
#9  0x00007f8eeba8266a in KParts::StatusBarExtension::~StatusBarExtension (this=0x6c243a0, __in_chrg=<value optimized out>) at /encrypted/home/andris/development/sources/kde-trunk/kdelibs/kparts/statusbarextension.cpp:110
#10 0x00007f8ee503b650 in QObjectPrivate::deleteChildren (this=0x5d966c0) at kernel/qobject.cpp:1907
#11 0x00007f8ee5039d4f in QObject::~QObject (this=0x19cfb90, __in_chrg=<value optimized out>) at kernel/qobject.cpp:926
#12 0x00007f8eeba5fbf0 in KParts::Part::~Part (this=0x19cfb90, __vtt_parm=0x7f8ec98e4950, __in_chrg=<value optimized out>) at /encrypted/home/andris/development/sources/kde-trunk/kdelibs/kparts/part.cpp:190
#13 0x00007f8eeba60a23 in KParts::ReadOnlyPart::~ReadOnlyPart (this=0x19cfb90, __vtt_parm=0x7f8ec98e4948, __in_chrg=<value optimized out>) at /encrypted/home/andris/development/sources/kde-trunk/kdelibs/kparts/part.cpp:460
#14 0x00007f8ec96ad788 in KWebKitPart::~KWebKitPart (this=0x19cfb90, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at /encrypted/home/andris/development/sources/kde-trunk/kwebkitpart/src/kwebkitpart.cpp:182
#15 0x00007f8ec96ad7c9 in KWebKitPart::~KWebKitPart (this=0x19cfb90, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at /encrypted/home/andris/development/sources/kde-trunk/kwebkitpart/src/kwebkitpart.cpp:184
#16 0x00007f8eeb33fbd7 in Akregator::BrowserFrame::Private::~Private (this=0x65ab6d0, __in_chrg=<value optimized out>) at /encrypted/home/andris/development/sources/kde-trunk/kdepim/akregator/src/browserframe_p.cpp:50
#17 0x00007f8eeb33fc99 in Akregator::BrowserFrame::Private::~Private (this=0x65ab6d0, __in_chrg=<value optimized out>) at /encrypted/home/andris/development/sources/kde-trunk/kdepim/akregator/src/browserframe_p.cpp:51
#18 0x00007f8eeb33c4b7 in Akregator::BrowserFrame::~BrowserFrame (this=0x59c3bf0, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at /encrypted/home/andris/development/sources/kde-trunk/kdepim/akregator/src/browserframe.cpp:63
#19 0x00007f8eeb33c529 in Akregator::BrowserFrame::~BrowserFrame (this=0x59c3bf0, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at /encrypted/home/andris/development/sources/kde-trunk/kdepim/akregator/src/browserframe.cpp:64
#20 0x00007f8eeb3398f9 in Akregator::FrameManager::slotRemoveFrame (this=0x8bac80, id=4) at /encrypted/home/andris/development/sources/kde-trunk/kdepim/akregator/src/framemanager.cpp:108
#21 0x00007f8eeb33a37a in Akregator::FrameManager::qt_metacall (this=0x8bac80, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff885089f0) at /encrypted/home/andris/development/build/kde-trunk/kdepim/akregator/src/framemanager.moc:155
#22 0x00007f8ee5029603 in QMetaObject::metacall (object=0x8bac80, cl=QMetaObject::InvokeMetaMethod, idx=18, argv=0x7fff885089f0) at kernel/qmetaobject.cpp:245
#23 0x00007f8ee503f999 in QMetaObject::activate (sender=0x7ab960, m=0x7f8ed5e48b20, local_signal_index=1, argv=0x7fff885089f0) at kernel/qobject.cpp:3565
#24 0x00007f8ed5be7341 in Akregator::TabWidget::signalRemoveFrameRequest (this=<value optimized out>, _t1=4) at /encrypted/home/andris/development/build/kde-trunk/kdepim/akregator/src/tabwidget.moc:153
#25 0x00007f8ed5be783a in Akregator::TabWidget::slotCloseRequest (this=0x7ab960, widget=0x59c3bf0) at /encrypted/home/andris/development/sources/kde-trunk/kdepim/akregator/src/tabwidget.cpp:416
#26 0x00007f8ed5be8c1b in Akregator::TabWidget::qt_metacall (this=0x7ab960, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff88508bd0) at /encrypted/home/andris/development/build/kde-trunk/kdepim/akregator/src/tabwidget.moc:132
#27 0x00007f8ee5029603 in QMetaObject::metacall (object=0x7ab960, cl=QMetaObject::InvokeMetaMethod, idx=87, argv=0x7fff88508bd0) at kernel/qmetaobject.cpp:245
#28 0x00007f8ee503f999 in QMetaObject::activate (sender=0x7ab960, m=0x7f8ee7387c80, local_signal_index=11, argv=0x7fff88508bd0) at kernel/qobject.cpp:3565
#29 0x00007f8ee6fb6871 in KTabWidget::closeRequest (this=0x7ab960, _t1=0x59c3bf0) at /encrypted/home/andris/development/build/kde-trunk/kdelibs/kdeui/ktabwidget.moc:284
#30 0x00007f8ee6fb5c64 in KTabWidget::closeRequest (this=0x7ab960, index=2) at /encrypted/home/andris/development/sources/kde-trunk/kdelibs/kdeui/widgets/ktabwidget.cpp:684
#31 0x00007f8ee6fb625d in KTabWidget::qt_metacall (this=0x7ab960, _c=QMetaObject::InvokeMetaMethod, _id=26, _a=0x7fff88508e00) at /encrypted/home/andris/development/build/kde-trunk/kdelibs/kdeui/ktabwidget.moc:159
#32 0x00007f8ed5be89e0 in Akregator::TabWidget::qt_metacall (this=0x7ab960, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff88508e00) at /encrypted/home/andris/development/build/kde-trunk/kdepim/akregator/src/tabwidget.moc:107
#33 0x00007f8ee5029603 in QMetaObject::metacall (object=0x7ab960, cl=QMetaObject::InvokeMetaMethod, idx=65, argv=0x7fff88508e00) at kernel/qmetaobject.cpp:245
#34 0x00007f8ee503f999 in QMetaObject::activate (sender=0x90e740, m=0x7f8ee6bc71a0, local_signal_index=1, argv=0x7fff88508e00) at kernel/qobject.cpp:3565
#35 0x00007f8ee63f68e6 in QTabBar::tabCloseRequested (this=0x90e740, _t1=2) at .moc/debug-shared/moc_qtabbar.cpp:222
#36 0x00007f8ee63efef1 in QTabBarPrivate::_q_closeTab (this=0x90e7c0) at widgets/qtabbar.cpp:662
#37 0x00007f8ee63f6449 in QTabBar::qt_static_metacall (_o=0x90e740, _c=QMetaObject::InvokeMetaMethod, _id=7, _a=0x7fff88508fd0) at .moc/debug-shared/moc_qtabbar.cpp:118
#38 0x00007f8ee503f8bf in QMetaObject::activate (sender=0x1820ab0, m=0x7f8ee6bdfb60, local_signal_index=2, argv=0x7fff88508fd0) at kernel/qobject.cpp:3546
#39 0x00007f8ee6698c34 in QAbstractButton::clicked (this=0x1820ab0, _t1=false) at .moc/debug-shared/moc_qabstractbutton.cpp:220
#40 0x00007f8ee6311eaa in QAbstractButtonPrivate::emitClicked (this=0x6059620) at widgets/qabstractbutton.cpp:546
#41 0x00007f8ee6311e29 in QAbstractButtonPrivate::click (this=0x6059620) at widgets/qabstractbutton.cpp:539
#42 0x00007f8ee631330f in QAbstractButton::mouseReleaseEvent (this=0x1820ab0, e=0x7fff88509c20) at widgets/qabstractbutton.cpp:1121
#43 0x00007f8ee5e9a8e6 in QWidget::event (this=0x1820ab0, event=0x7fff88509c20) at kernel/qwidget.cpp:8361
#44 0x00007f8ee6313165 in QAbstractButton::event (this=0x1820ab0, e=0x7fff88509c20) at widgets/qabstractbutton.cpp:1080
#45 0x00007f8ee5e34e24 in QApplicationPrivate::notify_helper (this=0x64ed90, receiver=0x1820ab0, e=0x7fff88509c20) at kernel/qapplication.cpp:4522
#46 0x00007f8ee5e32db1 in QApplication::notify (this=0x7fff8850ab90, receiver=0x1820ab0, e=0x7fff88509c20) at kernel/qapplication.cpp:4065
#47 0x00007f8ee6e9603d in KApplication::notify (this=0x7fff8850ab90, receiver=0x1820ab0, event=0x7fff88509c20) at /encrypted/home/andris/development/sources/kde-trunk/kdelibs/kdeui/kernel/kapplication.cpp:311
#48 0x00007f8ee5021149 in QCoreApplication::notifyInternal (this=0x7fff8850ab90, receiver=0x1820ab0, event=0x7fff88509c20) at kernel/qcoreapplication.cpp:876
#49 0x00007f8ee5e3768f in QCoreApplication::sendSpontaneousEvent (receiver=0x1820ab0, event=0x7fff88509c20) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234
#50 0x00007f8ee5e3138c in QApplicationPrivate::sendMouseEvent (receiver=0x1820ab0, event=0x7fff88509c20, alienWidget=0x1820ab0, nativeWidget=0x644010, buttonDown=0x7f8ee6c03998, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3159
#51 0x00007f8ee5ed677c in QETWidget::translateMouseEvent (this=0x644010, event=0x7fff8850a780) at kernel/qapplication_x11.cpp:4494
#52 0x00007f8ee5ed310b in QApplication::x11ProcessEvent (this=0x7fff8850ab90, event=0x7fff8850a780) at kernel/qapplication_x11.cpp:3498
#53 0x00007f8ee5f0e064 in x11EventSourceDispatch (s=0x64de10, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#54 0x00007f8eddc61bd3 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#55 0x00007f8eddc623b0 in ?? () from /lib64/libglib-2.0.so.0
#56 0x00007f8eddc62650 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#57 0x00007f8ee505dcf1 in QEventDispatcherGlib::processEvents (this=0x61caf0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#58 0x00007f8ee5f0e412 in QGuiEventDispatcherGlib::processEvents (this=0x61caf0, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#59 0x00007f8ee501e9ae in QEventLoop::processEvents (this=0x7fff8850ab30, flags=...) at kernel/qeventloop.cpp:149
#60 0x00007f8ee501eb38 in QEventLoop::exec (this=0x7fff8850ab30, flags=...) at kernel/qeventloop.cpp:204
#61 0x00007f8ee50217ca in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1148
#62 0x00007f8ee5e32032 in QApplication::exec () at kernel/qapplication.cpp:3783
#63 0x0000000000408ba3 in main (argc=<value optimized out>, argv=<value optimized out>) at /encrypted/home/andris/development/sources/kde-trunk/kdepim/akregator/src/main.cpp:103


Diffs
-----

  kparts/statusbarextension.cpp 7689360 

Diff: http://git.reviewboard.kde.org/r/103098/diff/diff


Testing
-------


Thanks,

Andras Mantia

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20111109/f3b6b3df/attachment.htm>


More information about the kde-core-devel mailing list