Bug 222010 - Plasma workspace crashes when an attempt is made to add a non-compatible widget to a panel
Summary: Plasma workspace crashes when an attempt is made to add a non-compatible widg...
Status: RESOLVED DOWNSTREAM
Alias: None
Product: plasma4
Classification: Unmaintained
Component: general (other bugs)
Version First Reported In: unspecified
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-01-10 03:31 UTC by Nikos
Modified: 2010-01-10 15:05 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nikos 2010-01-10 03:31:14 UTC
Application: plasma-desktop (0.3)
KDE Platform Version: 4.3.90 (KDE 4.3.90 (KDE 4.4 RC1))
Qt Version: 4.6.0
Operating System: Linux 2.6.31-17-generic-pae i686
Distribution: Ubuntu 9.10

-- Information about the crash:
Plasma workspace consistently crashes when an attempt is made to add an (ill-behaving or incompatible?) widget to a panel. In my case, both fancy tasks and smooth tasks cause this crash.

Even though this is not stricty a problem caused by the KDE infrastrcture, I believe that the workspace should be more robust against such widgets. I could, for example, warn the user or prohibit the use of such a plugin, instead of crashing.

 -- Backtrace:
Application: Plasma Workspace (kdeinit4), signal: Segmentation fault
[Current thread is 1 (Thread 0xb567f700 (LWP 5336))]

Thread 2 (Thread 0xa533db70 (LWP 5337)):
#0  0xb782f430 in __kernel_vsyscall ()
#1  0xb6b83e15 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb6bfa307 in QWaitConditionPrivate::wait (this=0x9889e80, mutex=0x9889e7c, time=4294967295) at thread/qwaitcondition_unix.cpp:87
#3  QWaitCondition::wait (this=0x9889e80, mutex=0x9889e7c, time=4294967295) at thread/qwaitcondition_unix.cpp:159
#4  0xb5e2c102 in QHostInfoAgent::run (this=0x9889e70) at kernel/qhostinfo.cpp:252
#5  0xb6bf93ae in QThreadPrivate::start (arg=0x9889e70) at thread/qthread_unix.cpp:244
#6  0xb6b7f80e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#7  0xb5f9b8de in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 1 (Thread 0xb567f700 (LWP 5336)):
[KCrash Handler]
#6  0x00000001 in ?? ()
#7  0xa6ce3f62 in ?? () from /usr/lib/kde4/plasma_applet_fancytasks.so
#8  0xb5393047 in Plasma::Containment::addApplet (this=0xa60a010, applet=0xa60a010, pos=..., delayInit=false) at ../../plasma/containment.cpp:961
#9  0xb53933cd in Plasma::ContainmentPrivate::addApplet (this=0x93046e8, name=..., args=..., appletGeometry=..., id=0, delayInit=<value optimized out>) at ../../plasma/containment.cpp:2283
#10 0xb5393649 in Plasma::Containment::addApplet (this=0x9338fc8, name=..., args=..., appletGeometry=...) at ../../plasma/containment.cpp:892
#11 0xb20d3180 in Plasma::WidgetExplorer::addApplet (this=0x94305c8, appletItem=0xa52f8c8) at ../../../libs/plasmagenericshell/widgetsExplorer/widgetexplorer.cpp:374
#12 0xb20d5b1f in Plasma::WidgetExplorer::qt_metacall (this=0x94305c8, _c=QMetaObject::InvokeMetaMethod, _id=17, _a=0xbf9bb928) at ./widgetexplorer.moc:89
#13 0xb6d0011a in QMetaObject::metacall (object=0x94305c8, cl=174201024, idx=17, argv=0xbf9bb928) at kernel/qmetaobject.cpp:237
#14 0xb6d0e89b in QMetaObject::activate (sender=0x947d290, m=0xb20dd470, local_signal_index=0, argv=0xbf9bb928) at kernel/qobject.cpp:3294
#15 0xb20aeb73 in AppletsListWidget::appletDoubleClicked (this=0x947d290, _t1=0xa52f8c8) at moc_appletslist.cpp:132
#16 0xb20cf5ec in AppletsListWidget::appletIconDoubleClicked (this=0x947d290, applet=0xa524350) at ../../../libs/plasmagenericshell/widgetsExplorer/appletslist.cpp:428
#17 0xb20af3f7 in AppletsListWidget::qt_metacall (this=0x947d290, _c=QMetaObject::InvokeMetaMethod, _id=23, _a=0xbf9bba78) at moc_appletslist.cpp:113
#18 0xb6d0011a in QMetaObject::metacall (object=0x947d290, cl=174201024, idx=23, argv=0xbf9bba78) at kernel/qmetaobject.cpp:237
#19 0xb6d0e89b in QMetaObject::activate (sender=0xa524350, m=0xb20dd480, local_signal_index=3, argv=0xbf9bba78) at kernel/qobject.cpp:3294
#20 0xb20aea33 in AppletIconWidget::doubleClicked (this=0xa524350, _t1=0xa524350) at moc_appleticon.cpp:115
#21 0xb20c8a9a in AppletIconWidget::mouseDoubleClickEvent (this=0xa524350, event=0xbf9bc294) at ../../../libs/plasmagenericshell/widgetsExplorer/appleticon.cpp:131
#22 0xb68aa79e in QGraphicsItem::sceneEvent (this=0xa524358, event=0xbf9bc294) at graphicsview/qgraphicsitem.cpp:6534
#23 0xb69072b7 in QGraphicsWidget::sceneEvent (this=0xa524350, event=0xbf9bc294) at graphicsview/qgraphicswidget.cpp:1131
#24 0xb68cbf6f in QGraphicsScenePrivate::sendEvent (this=0x9067888, item=0xa524358, event=0xbf9bc294) at graphicsview/qgraphicsscene.cpp:1138
#25 0xb68ce64b in QGraphicsScenePrivate::sendMouseEvent (this=0x9067888, mouseEvent=0xbf9bc294) at graphicsview/qgraphicsscene.cpp:1212
#26 0xb68dd8f2 in QGraphicsScenePrivate::mousePressEventHandler (this=0x9067888, mouseEvent=0xbf9bc294) at graphicsview/qgraphicsscene.cpp:1335
#27 0xb68e1334 in QGraphicsScene::event (this=0x8ffc990, event=0xbf9bc294) at graphicsview/qgraphicsscene.cpp:3351
#28 0xb623c19c in QApplicationPrivate::notify_helper (this=0x8f5b028, receiver=0x8ffc990, e=0xbf9bc294) at kernel/qapplication.cpp:4242
#29 0xb6242df7 in QApplication::notify (this=0x8f54910, receiver=0x8ffc990, e=0xbf9bc294) at kernel/qapplication.cpp:3661
#30 0xb6fee67a in KApplication::notify (this=0x8f54910, receiver=0x8ffc990, event=0xbf9bc294) at ../../kdeui/kernel/kapplication.cpp:302
#31 0xb6cfaeab in QCoreApplication::notifyInternal (this=0x8f54910, receiver=0x8ffc990, event=0xbf9bc294) at kernel/qcoreapplication.cpp:704
#32 0xb623d07e in QCoreApplication::sendSpontaneousEvent (receiver=0x8ffc990, event=0xbf9bb440) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:218
#33 qt_sendSpontaneousEvent (receiver=0x8ffc990, event=0xbf9bb440) at kernel/qapplication.cpp:5219
#34 0xb6900fad in QGraphicsView::mouseDoubleClickEvent (this=0xa3c0398, event=0xbf9bc990) at graphicsview/qgraphicsview.cpp:3003
#35 0xb6298fba in QWidget::event (this=0xa3c0398, event=0xbf9bc990) at kernel/qwidget.cpp:7978
#36 0xb6692433 in QFrame::event (this=0xa3c0398, e=0xbf9bc990) at widgets/qframe.cpp:557
#37 0xb672bcf2 in QAbstractScrollArea::viewportEvent (this=0xa6218c0, e=0xbf9bb440) at widgets/qabstractscrollarea.cpp:1032
#38 0xb68ff39b in QGraphicsView::viewportEvent (this=0xa3c0398, event=0xbf9bc990) at graphicsview/qgraphicsview.cpp:2747
#39 0xb672e5e5 in QAbstractScrollAreaPrivate::viewportEvent (this=0xa080058, o=0x9dd5798, e=0xbf9bc990) at widgets/qabstractscrollarea_p.h:100
#40 QAbstractScrollAreaFilter::eventFilter (this=0xa080058, o=0x9dd5798, e=0xbf9bc990) at widgets/qabstractscrollarea_p.h:116
#41 0xb6cfa14a in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=0x8f5b028, receiver=0x9dd5798, event=0xbf9bc990) at kernel/qcoreapplication.cpp:819
#42 0xb623c179 in QApplicationPrivate::notify_helper (this=0x8f5b028, receiver=0x9dd5798, e=0xbf9bc990) at kernel/qapplication.cpp:4238
#43 0xb624376b in QApplication::notify (this=0x8f54910, receiver=0x9dd5798, e=0xbf9bc990) at kernel/qapplication.cpp:3822
#44 0xb6fee67a in KApplication::notify (this=0x8f54910, receiver=0x9dd5798, event=0xbf9bc990) at ../../kdeui/kernel/kapplication.cpp:302
#45 0xb6cfaeab in QCoreApplication::notifyInternal (this=0x8f54910, receiver=0x9dd5798, event=0xbf9bc990) at kernel/qcoreapplication.cpp:704
#46 0xb624271f in QCoreApplication::sendEvent (receiver=0x9dd5798, event=0xbf9bc990, alienWidget=0x9dd5798, nativeWidget=0xa3637a8, buttonDown=0xb6b77060, lastMouseReceiver=..., spontaneous=true)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#47 QApplicationPrivate::sendMouseEvent (receiver=0x9dd5798, event=0xbf9bc990, alienWidget=0x9dd5798, nativeWidget=0xa3637a8, buttonDown=0xb6b77060, lastMouseReceiver=..., spontaneous=true)
    at kernel/qapplication.cpp:2956
#48 0xb62cbd18 in QETWidget::translateMouseEvent (this=0xa3637a8, event=0xbf9bceac) at kernel/qapplication_x11.cpp:4368
#49 0xb62cb1f1 in QApplication::x11ProcessEvent (this=0x8f54910, event=0xbf9bceac) at kernel/qapplication_x11.cpp:3379
#50 0xb62fa04a in x11EventSourceDispatch (s=0x8f5d0c8, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#51 0xb5a17e88 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#52 0xb5a1b730 in ?? () from /lib/libglib-2.0.so.0
#53 0xb5a1b863 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#54 0xb6d26bd5 in QEventDispatcherGlib::processEvents (this=0x8f5a300, flags=...) at kernel/qeventdispatcher_glib.cpp:407
#55 0xb62f9b75 in QGuiEventDispatcherGlib::processEvents (this=0x8f5a300, flags=...) at kernel/qguieventdispatcher_glib.cpp:202
#56 0xb6cf94c9 in QEventLoop::processEvents (this=0xbf9bd1a4, flags=) at kernel/qeventloop.cpp:149
#57 0xb6cf991a in QEventLoop::exec (this=0xbf9bd1a4, flags=...) at kernel/qeventloop.cpp:201
#58 0xb6cfdb0f in QCoreApplication::exec () at kernel/qcoreapplication.cpp:981
#59 0xb623c237 in QApplication::exec () at kernel/qapplication.cpp:3570
#60 0xb2431c7e in kdemain (argc=1, argv=0x8f4c1b0) at ../../../../plasma/desktop/shell/main.cpp:112
#61 0x0804dff7 in launch (argc=<value optimized out>, _name=<value optimized out>, args=<value optimized out>, cwd=0x0, envc=0, envs=0x8f48c40 "", reset_env=false, tty=0x0, avoid_loops=false, 
    startup_id_str=0x8051429 "0") at ../../kinit/kinit.cpp:706
#62 0x0804ec15 in handle_launcher_request (sock=<value optimized out>, who=<value optimized out>) at ../../kinit/kinit.cpp:1198
#63 0x0804f08c in handle_requests (waitForPid=<value optimized out>) at ../../kinit/kinit.cpp:1391
#64 0x0804fe27 in main (argc=4, argv=0xbf9bdc54, envp=0xbf9bdc68) at ../../kinit/kinit.cpp:1830

Possible duplicates by query: bug 219644, bug 219243, bug 218470, bug 218412, bug 217327.

Reported using DrKonqi
Comment 1 Dario Andres 2010-01-10 15:05:28 UTC
The crash is directly related to the FancyTasks widget:

#6  0x00000001 in ?? ()
#7  0xa6ce3f62 in ?? () from /usr/lib/kde4/plasma_applet_fancytasks.so

You could probably recompile them against the new KDE SC 4.4 RC1 or notify the widget's author (in kde-look) about this error.

About the robustness, the idea is to move forward scripted widgets, which are easier to handle than the binary ones. Check bug 199754, there are also some webpages explaining this. 

Regards