Bug 198421

Summary: Plasma crash if you click Download new widgets after opened (and closed) the AddWidget times and the Download new widget dialog (see steps)
Product: [Unmaintained] plasma4 Reporter: Dario Andres <andresbajotierra>
Component: generalAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED FIXED    
Severity: crash CC: animesh.saxena, dugong, jotaefe_cl, juliano.timm, kutas26, manav.nit, marcomelo, Nontenda, olivier.lahaye1, piotr.luczko, prashanthiyer, reubendmur, sanjeev.bali, seangibbons, sureshpaulchamy
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Unlisted Binaries   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Dario Andres 2009-06-30 16:07:28 UTC
Application that crashed: plasma-desktop
Version of the application: 0.3
KDE Version: 4.3.60 (KDE 4.3.60 (KDE 4.4 >= 20090624))
Qt Version: 4.5.2
Operating System: Linux 2.6.30-ARCH i686

What I was doing when the application crashed:
Using:
Qt: 4.5.2 (KDE-Qt git commit 46a247a2c9a8c0c4456a02f6a0922d859d88fe76
        Date:   Fri Jun 26 13:45:37 2009 +0200)
KDE: 4.3.60 (KDE 4.3.60 (KDE 4.4 >= 20090624))
kdelibs svn rev. 987857 / kdebase svn rev. 987857
on ArchLinux i686 - Kernel 2.6.30

I got this crash while trying to reproduce bug 198341.

Steps to reproduce:
- Open the "Add Widgets" dialog (from RightClick@desktop)
- Select "Install new widgets" -> "Download New Plasma Widgets"
GHNS dialog will appear.
- Now close the "Add Widgets" dialog (without closing the GHNS dialog first)  (according to bug 198341, here it crashes; but it is not the case)
Both dialogs will close
- Now repeat steps 1 and 2 -> Plasma crash 

My guess is that the GHNS dialog/core is not being properly unloaded as we didn't closed its window properly, so when trying to show it again, it crashes.

 -- Backtrace:
Application: Plasma Workspace (plasma-desktop), signal: Segmentation fault
[Current thread is 0 (LWP 4254)]

Thread 2 (Thread 0xa7f74b70 (LWP 4263)):
#0  0xb80cc424 in __kernel_vsyscall ()
#1  0xb6192c55 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0xb62006c3 in QWaitConditionPrivate::wait (this=0xa2ed778, time=4294967295) at thread/qwaitcondition_unix.cpp:87
#3  0xb62004c7 in QWaitCondition::wait (this=0xa3471d8, mutex=0xa3471d4, time=4294967295) at thread/qwaitcondition_unix.cpp:159
#4  0xb7959576 in QHostInfoAgent::run (this=0xa3471c8) at kernel/qhostinfo.cpp:260
#5  0xb61ff266 in QThreadPrivate::start (arg=0xa3471c8) at thread/qthread_unix.cpp:188
#6  0xb618e6bc in start_thread () from /lib/libpthread.so.0
#7  0xb5fd8ffe in clone () from /lib/libc.so.6

Thread 1 (Thread 0xb4446720 (LWP 4254)):
[KCrash Handler]
#6  0x00000300 in ?? ()
#7  0xb7dace36 in KNS::Engine::downloadDialog (this=0xaa541b0) at /home/kde-devel/kde/src/kde-qt/include/QtGui/../../src/gui/kernel/qwidget.h:473
#8  0xb7dad06c in KNS::Engine::downloadDialog (this=0xaa541b0, receiver=0xa7c86b0, slot=0xb7fdf5b8 "1widgetBrowserFinished()")
    at /home/kde-devel/kde/src/KDE/kdelibs/knewstuff/knewstuff2/engine.cpp:230
#9  0xb7eee984 in Plasma::PlasmoidPackage::createNewWidgetBrowser (this=0xa7c86b0, parent=0xa2b7d70) at /home/kde-devel/kde/src/KDE/kdelibs/plasma/private/packages.cpp:84
#10 0xb80a2883 in Plasma::AppletBrowserWidget::downloadWidgets (this=0xa2b7d70, type=@0xbf81acd8) at /home/kde-devel/kde/src/KDE/kdebase/workspace/plasma/shells/common/appletbrowser.cpp:412
#11 0xb80a5d0d in Plasma::AppletBrowserWidget::qt_metacall (this=0xa2b7d70, _c=QMetaObject::InvokeMetaMethod, _id=29, _a=0xbf81aca8)
    at /home/kde-devel/kde/build/KDE/kdebase/workspace/plasma/shells/desktop/appletbrowser.moc:82
#12 0xb631f892 in QMetaObject::activate (sender=0x9e3f498, from_signal_index=5, to_signal_index=5, argv=0xbf81aca8) at kernel/qobject.cpp:3112
#13 0xb631fc0a in QMetaObject::activate (sender=0x9e3f498, m=0xb642ca58, local_signal_index=1, argv=0xbf81aca8) at kernel/qobject.cpp:3186
#14 0xb63251fc in QSignalMapper::mapped (this=0x9e3f498, _t1=@0xbf81acd8) at .moc/debug-shared/moc_qsignalmapper.cpp:102
#15 0xb6324f2b in QSignalMapper::map (this=0x9e3f498, sender=0xa3534e8) at kernel/qsignalmapper.cpp:268
#16 0xb6324e7c in QSignalMapper::map (this=0x9e3f498) at kernel/qsignalmapper.cpp:257
#17 0xb6325124 in QSignalMapper::qt_metacall (this=0x9e3f498, _c=QMetaObject::InvokeMetaMethod, _id=4, _a=0xbf81ae28) at .moc/debug-shared/moc_qsignalmapper.cpp:81
#18 0xb631f892 in QMetaObject::activate (sender=0xa3534e8, from_signal_index=5, to_signal_index=6, argv=0xbf81ae28) at kernel/qobject.cpp:3112
#19 0xb631fcd5 in QMetaObject::activate (sender=0xa3534e8, m=0xb6fdc108, from_local_signal_index=1, to_local_signal_index=2, argv=0xbf81ae28) at kernel/qobject.cpp:3206
#20 0xb6612228 in QAction::triggered (this=0xa3534e8, _t1=false) at .moc/debug-shared/moc_qaction.cpp:236
#21 0xb66117ed in QAction::activate (this=0xa3534e8, event=QAction::Trigger) at kernel/qaction.cpp:1160
#22 0xb6af850c in QMenuPrivate::activateCausedStack (this=0xaac2bf8, causedStack=@0xbf81af10, action=0xa3534e8, action_e=QAction::Trigger, self=true) at widgets/qmenu.cpp:967
#23 0xb6af8965 in QMenuPrivate::activateAction (this=0xaac2bf8, action=0xa3534e8, action_e=QAction::Trigger, self=true) at widgets/qmenu.cpp:1060
#24 0xb6afcf85 in QMenu::mouseReleaseEvent (this=0xab24328, e=0xbf81b63c) at widgets/qmenu.cpp:2254
#25 0xb7769205 in KMenu::mouseReleaseEvent (this=0xab24328, e=0xbf81b63c) at /home/kde-devel/kde/src/KDE/kdelibs/kdeui/widgets/kmenu.cpp:456
#26 0xb6681350 in QWidget::event (this=0xab24328, event=0xbf81b63c) at kernel/qwidget.cpp:7549
#27 0xb6afd61e in QMenu::event (this=0xab24328, e=0xbf81b63c) at widgets/qmenu.cpp:2353
#28 0xb662100b in QApplicationPrivate::notify_helper (this=0x9b290e8, receiver=0xab24328, e=0xbf81b63c) at kernel/qapplication.cpp:4056
#29 0xb661fd56 in QApplication::notify (this=0x9b20788, receiver=0xab24328, e=0xbf81b63c) at kernel/qapplication.cpp:3758
#30 0xb767ff7a in KApplication::notify (this=0x9b20788, receiver=0xab24328, event=0xbf81b63c) at /home/kde-devel/kde/src/KDE/kdelibs/kdeui/kernel/kapplication.cpp:302
#31 0xb6306089 in QCoreApplication::notifyInternal (this=0x9b20788, receiver=0xab24328, event=0xbf81b63c) at kernel/qcoreapplication.cpp:610
#32 0xb6621eb5 in QCoreApplication::sendSpontaneousEvent (receiver=0xab24328, event=0xbf81b63c) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:216
#33 0xb661e48c in QApplicationPrivate::sendMouseEvent (receiver=0xab24328, event=0xbf81b63c, alienWidget=0x0, nativeWidget=0xab24328, buttonDown=0xb6ffc1a0, lastMouseReceiver=@0xb6ffc1a4)
    at kernel/qapplication.cpp:2924
#34 0xb66a2122 in QETWidget::translateMouseEvent (this=0xab24328, event=0xbf81cc70) at kernel/qapplication_x11.cpp:4343
#35 0xb669f0cc in QApplication::x11ProcessEvent (this=0x9b20788, event=0xbf81cc70) at kernel/qapplication_x11.cpp:3428
#36 0xb66d25b4 in x11EventSourceDispatch (s=0x9b34bb0, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#37 0xb482cd98 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#38 0xb48303e0 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#39 0xb4830513 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#40 0xb633a922 in QEventDispatcherGlib::processEvents (this=0x9b286a8, flags={i = 36}) at kernel/qeventdispatcher_glib.cpp:327
#41 0xb66d2bda in QGuiEventDispatcherGlib::processEvents (this=0x9b286a8, flags={i = 36}) at kernel/qguieventdispatcher_glib.cpp:202
#42 0xb6303667 in QEventLoop::processEvents (this=0xbf81cf40, flags={i = 36}) at kernel/qeventloop.cpp:149
#43 0xb63037ac in QEventLoop::exec (this=0xbf81cf40, flags={i = 0}) at kernel/qeventloop.cpp:201
#44 0xb6afbb6e in QMenu::exec (this=0xab24328, p=@0xbf81cfe4, action=0x0) at widgets/qmenu.cpp:1993
#45 0xb6b0ff6d in QPushButtonPrivate::_q_popupPressed (this=0xa916ca0) at widgets/qpushbutton.cpp:611
#46 0xb6b109de in QPushButton::qt_metacall (this=0xab130e8, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0xbf81d0b8) at .moc/debug-shared/moc_qpushbutton.cpp:74
#47 0xb777709a in KPushButton::qt_metacall (this=0xab130e8, _c=QMetaObject::InvokeMetaMethod, _id=40, _a=0xbf81d0b8) at /home/kde-devel/kde/build/KDE/kdelibs/kdeui/kpushbutton.moc:70
#48 0xb631f892 in QMetaObject::activate (sender=0xab130e8, from_signal_index=27, to_signal_index=27, argv=0x0) at kernel/qobject.cpp:3112
#49 0xb631fc0a in QMetaObject::activate (sender=0xab130e8, m=0xb6fed484, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3186
#50 0xb6d5afcb in QAbstractButton::pressed (this=0xab130e8) at .moc/debug-shared/moc_qabstractbutton.cpp:187
#51 0xb6a4c4cb in QAbstractButtonPrivate::emitPressed (this=0xa916ca0) at widgets/qabstractbutton.cpp:557
#52 0xb6a4d8f4 in QAbstractButton::mousePressEvent (this=0xab130e8, e=0xbf81d85c) at widgets/qabstractbutton.cpp:1092
#53 0xb7776cd1 in KPushButton::mousePressEvent (this=0xa6d7203, e=0x1) at /home/kde-devel/kde/src/KDE/kdelibs/kdeui/widgets/kpushbutton.cpp:226
#54 0xb6681332 in QWidget::event (this=0xab130e8, event=0xbf81d85c) at kernel/qwidget.cpp:7545
#55 0xb6a4d855 in QAbstractButton::event (this=0xab130e8, e=0xbf81d85c) at widgets/qabstractbutton.cpp:1077
#56 0xb6b1020f in QPushButton::event (this=0xab130e8, e=0xbf81d85c) at widgets/qpushbutton.cpp:662
#57 0xb662100b in QApplicationPrivate::notify_helper (this=0x9b290e8, receiver=0xab130e8, e=0xbf81d85c) at kernel/qapplication.cpp:4056
#58 0xb661fd56 in QApplication::notify (this=0x9b20788, receiver=0xab130e8, e=0xbf81d85c) at kernel/qapplication.cpp:3758
#59 0xb767ff7a in KApplication::notify (this=0x9b20788, receiver=0xab130e8, event=0xbf81d85c) at /home/kde-devel/kde/src/KDE/kdelibs/kdeui/kernel/kapplication.cpp:302
#60 0xb6306089 in QCoreApplication::notifyInternal (this=0x9b20788, receiver=0xab130e8, event=0xbf81d85c) at kernel/qcoreapplication.cpp:610
#61 0xb6621eb5 in QCoreApplication::sendSpontaneousEvent (receiver=0xab130e8, event=0xbf81d85c) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:216
#62 0xb661e48c in QApplicationPrivate::sendMouseEvent (receiver=0xab130e8, event=0xbf81d85c, alienWidget=0xab130e8, nativeWidget=0xad10118, buttonDown=0xb6ffc1a0, lastMouseReceiver=@0xb6ffc1a4)
    at kernel/qapplication.cpp:2924
#63 0xb66a23f4 in QETWidget::translateMouseEvent (this=0xad10118, event=0xbf81edd0) at kernel/qapplication_x11.cpp:4409
#64 0xb669f0cc in QApplication::x11ProcessEvent (this=0x9b20788, event=0xbf81edd0) at kernel/qapplication_x11.cpp:3428
#65 0xb66d25b4 in x11EventSourceDispatch (s=0x9b34bb0, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#66 0xb482cd98 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#67 0xb48303e0 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#68 0xb4830513 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#69 0xb633a922 in QEventDispatcherGlib::processEvents (this=0x9b286a8, flags={i = 36}) at kernel/qeventdispatcher_glib.cpp:327
#70 0xb66d2bda in QGuiEventDispatcherGlib::processEvents (this=0x9b286a8, flags={i = 36}) at kernel/qguieventdispatcher_glib.cpp:202
#71 0xb6303667 in QEventLoop::processEvents (this=0xbf81f09c, flags={i = 36}) at kernel/qeventloop.cpp:149
#72 0xb63037ac in QEventLoop::exec (this=0xbf81f09c, flags={i = 0}) at kernel/qeventloop.cpp:201
#73 0xb6306765 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888
#74 0xb661f128 in QApplication::exec () at kernel/qapplication.cpp:3525
#75 0xb807f70d in kdemain (argc=1, argv=0xbf81f284) at /home/kde-devel/kde/src/KDE/kdebase/workspace/plasma/shells/desktop/main.cpp:50
#76 0x0804878b in main (argc=1, argv=0xbf81f284) at /home/kde-devel/kde/build/KDE/kdebase/workspace/plasma/shells/desktop/plasma-desktop_dummy.cpp:3

Reported using DrKonqi
Comment 1 Aaron J. Seigo 2009-07-03 04:23:59 UTC
SVN commit 990702 by aseigo:

* avoid multiple connections
* use a QPointer to prevent unsightly crashes
* attempt to clean up when the download dialog is deleted; doesn't really work though as signals are getting blocked somewhere under certain conditions :/

not going to backport this one as it's not trivial enough and really needs testing
CCMAIL:jeremy@scitools.com
BUG:198421


 M  +40 -14    engine.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=990702
Comment 2 Dario Andres 2009-07-24 02:32:29 UTC
*** Bug 201256 has been marked as a duplicate of this bug. ***
Comment 3 Dario Andres 2009-08-16 17:19:14 UTC
*** Bug 204009 has been marked as a duplicate of this bug. ***
Comment 4 Dario Andres 2009-09-01 22:58:52 UTC
*** Bug 205835 has been marked as a duplicate of this bug. ***
Comment 5 Dario Andres 2009-09-10 23:15:07 UTC
*** Bug 206977 has been marked as a duplicate of this bug. ***
Comment 6 Dario Andres 2009-11-01 01:15:59 UTC
*** Bug 212575 has been marked as a duplicate of this bug. ***
Comment 7 Dario Andres 2009-11-13 00:00:15 UTC
*** Bug 213076 has been marked as a duplicate of this bug. ***
Comment 8 Dario Andres 2009-11-15 13:35:55 UTC
*** Bug 213942 has been marked as a duplicate of this bug. ***
Comment 9 Dario Andres 2009-11-15 13:36:16 UTC
*** Bug 214610 has been marked as a duplicate of this bug. ***
Comment 10 Dario Andres 2009-11-23 22:27:47 UTC
*** Bug 215860 has been marked as a duplicate of this bug. ***
Comment 11 Dario Andres 2009-11-24 14:48:21 UTC
*** Bug 215959 has been marked as a duplicate of this bug. ***
Comment 12 Dario Andres 2009-12-02 16:53:23 UTC
*** Bug 217073 has been marked as a duplicate of this bug. ***
Comment 13 marco 2009-12-02 17:12:46 UTC
Any backport for Kde 4.3.x (future 4.3.5) ?
Comment 14 Dario Andres 2009-12-02 17:29:29 UTC
@marco: there is not a planned 4.3.5 release. I think the crash is not that much critical to force a patch for 4.3.4 
Regards
Comment 15 Dario Andres 2009-12-10 13:43:07 UTC
*** Bug 218106 has been marked as a duplicate of this bug. ***
Comment 16 Dario Andres 2009-12-20 13:42:17 UTC
*** Bug 219402 has been marked as a duplicate of this bug. ***
Comment 17 Dario Andres 2010-01-11 13:31:57 UTC
*** Bug 222197 has been marked as a duplicate of this bug. ***
Comment 18 Dario Andres 2010-01-20 14:09:44 UTC
*** Bug 223523 has been marked as a duplicate of this bug. ***