Review Request: Fix crash on statusbarextension destruction

David Faure faure at kde.org
Thu Nov 10 09:27:46 GMT 2011


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

Ship it!


Yep, looks good.

- David Faure


On Nov. 9, 2011, 9:40 p.m., Andras Mantia wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/103098/
> -----------------------------------------------------------
> 
> (Updated Nov. 9, 2011, 9:40 p.m.)
> 
> 
> 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/20111110/57409aa3/attachment.htm>


More information about the kde-core-devel mailing list