Bug 235978

Summary: Crash after changing some of FancyTask settings.
Product: [Unmaintained] plasma4 Reporter: Jerry Ablan <jerryablan>
Component: generalAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED DOWNSTREAM    
Severity: crash CC: aseigo, asraniel, emdeck, linkstat
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Jerry Ablan 2010-05-02 02:46:36 UTC
Application: plasma-desktop (0.3)
KDE Platform Version: 4.4.2 (KDE 4.4.2)
Qt Version: 4.6.2
Operating System: Linux 2.6.32-22-generic x86_64
Distribution: Ubuntu 10.04 LTS

-- Information about the crash:
Not much more than that, sorry. I had just added some widgets to my bottom panel and was configuring the tasks in fancytasks. I pressed "OK" and kaboom.	

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

Thread 3 (Thread 0x7f4702d2c710 (LWP 8123)):
#0  0x00007f4724e2af53 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f47217f04a9 in ?? () from /lib/libglib-2.0.so.0
#2  0x00007f47217f08fc in g_main_context_iteration () from /lib/libglib-2.0.so.0
#3  0x00007f4726432566 in QEventDispatcherGlib::processEvents (this=0x7f46fc0008b0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414
#4  0x00007f4726407992 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#5  0x00007f4726407d6c in QEventLoop::exec (this=0x7f4702d2bdb0, flags=) at kernel/qeventloop.cpp:201
#6  0x00007f4726311d59 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#7  0x00007f47263e8178 in QInotifyFileSystemWatcherEngine::run (this=0x1404b80) at io/qfilesystemwatcher_inotify.cpp:248
#8  0x00007f4726314775 in QThreadPrivate::start (arg=0x1404b80) at thread/qthread_unix.cpp:248
#9  0x00007f47260849ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#10 0x00007f4724e3769d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f46fb19c710 (LWP 18008)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f471dadeca6 in ?? () from /usr/lib/libQtWebKit.so.4
#2  0x00007f471dadece9 in ?? () from /usr/lib/libQtWebKit.so.4
#3  0x00007f47260849ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#4  0x00007f4724e3769d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f4727e35760 (LWP 8117)):
[KCrash Handler]
#5  TaskManager::Task::visibleName (this=0x0) at ../../../libs/taskmanager/task.cpp:367
#6  0x00007f46f2fd91d3 in ?? () from /usr/lib/kde4/plasma_applet_fancytasks.so
#7  0x00007f46f2fbcb4e in ?? () from /usr/lib/kde4/plasma_applet_fancytasks.so
#8  0x00007f46f2fc2da3 in ?? () from /usr/lib/kde4/plasma_applet_fancytasks.so
#9  0x00007f4725bb181a in _q_paintItem (item=<value optimized out>, painter=0x7fff3614d5b0, option=0xc92f38, widget=0x1940e50, useWindowOpacity=<value optimized out>, 
    painterStateProtection=<value optimized out>) at graphicsview/qgraphicsscene.cpp:4243
#10 0x00007f4725bc4544 in QGraphicsScenePrivate::drawItemHelper (this=<value optimized out>, item=0x49bb7d0, painter=0x7fff3614d5b0, option=0xc92f38, widget=0x1940e50, painterStateProtection=true)
    at graphicsview/qgraphicsscene.cpp:4311
#11 0x00007f4725bc6625 in QGraphicsScenePrivate::draw (this=<value optimized out>, item=0x49bb7d0, painter=0x7fff3614d5b0, viewTransform=<value optimized out>, transformPtr=<value optimized out>, 
    exposedRegion=<value optimized out>, widget=0x1940e50, opacity=<value optimized out>, effectTransform=0x0, wasDirtyParentSceneTransform=false, drawItem=true)
    at graphicsview/qgraphicsscene.cpp:4827
#12 0x00007f4725bc7272 in QGraphicsScenePrivate::drawSubtreeRecursive (this=<value optimized out>, item=0x49bb7d0, painter=0x7fff3614d5b0, viewTransform=0x7fff3614d360, exposedRegion=0x20e8e00, 
    widget=0x1940e50, parentOpacity=<value optimized out>, effectTransform=0x0) at graphicsview/qgraphicsscene.cpp:4749
#13 0x00007f4725bc66c0 in QGraphicsScenePrivate::draw (this=<value optimized out>, item=0x454b7b0, painter=0x7fff3614d5b0, viewTransform=<value optimized out>, transformPtr=<value optimized out>, 
    exposedRegion=<value optimized out>, widget=0x1940e50, opacity=<value optimized out>, effectTransform=0x0, wasDirtyParentSceneTransform=false, drawItem=true)
    at graphicsview/qgraphicsscene.cpp:4841
#14 0x00007f4725bc7272 in QGraphicsScenePrivate::drawSubtreeRecursive (this=<value optimized out>, item=0x454b7b0, painter=0x7fff3614d5b0, viewTransform=0x7fff3614d360, exposedRegion=0x20e8e00, 
    widget=0x1940e50, parentOpacity=<value optimized out>, effectTransform=0x0) at graphicsview/qgraphicsscene.cpp:4749
#15 0x00007f4725bc66c0 in QGraphicsScenePrivate::draw (this=<value optimized out>, item=0xf9b880, painter=0x7fff3614d5b0, viewTransform=<value optimized out>, transformPtr=<value optimized out>, 
    exposedRegion=<value optimized out>, widget=0x1940e50, opacity=<value optimized out>, effectTransform=0x0, wasDirtyParentSceneTransform=false, drawItem=true)
    at graphicsview/qgraphicsscene.cpp:4841
#16 0x00007f4725bc7272 in QGraphicsScenePrivate::drawSubtreeRecursive (this=<value optimized out>, item=0xf9b880, painter=0x7fff3614d5b0, viewTransform=0x7fff3614d360, exposedRegion=0x20e8e00, 
    widget=0x1940e50, parentOpacity=<value optimized out>, effectTransform=0x0) at graphicsview/qgraphicsscene.cpp:4749
#17 0x00007f4725bc7c34 in QGraphicsScenePrivate::drawItems (this=0xc92ce0, painter=0x7fff3614d5b0, viewTransform=0x7fff3614d360, exposedRegion=0x20e8e00, widget=0x1940e50)
    at graphicsview/qgraphicsscene.cpp:4619
#18 0x00007f4725be7465 in QGraphicsView::paintEvent (this=0x1324a40, event=<value optimized out>) at graphicsview/qgraphicsview.cpp:3393
#19 0x00007f471b385b09 in PanelView::paintEvent (this=0x7fff3614b500, event=0x0) at ../../../../plasma/desktop/shell/panelview.cpp:1300
#20 0x00007f47255fb162 in QWidget::event (this=0x1324a40, event=0x7fff3614def0) at kernel/qwidget.cpp:8144
#21 0x00007f47259a24e6 in QFrame::event (this=0x1324a40, e=0x7fff3614def0) at widgets/qframe.cpp:557
#22 0x00007f4725be3f0b in QGraphicsView::viewportEvent (this=0x1324a40, event=0x7fff3614def0) at graphicsview/qgraphicsview.cpp:2787
#23 0x00007f4726408487 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=<value optimized out>, receiver=0x1940e50, event=0x7fff3614def0) at kernel/qcoreapplication.cpp:819
#24 0x00007f47255a51fc in QApplicationPrivate::notify_helper (this=0xc053a0, receiver=0x1940e50, e=0x7fff3614def0) at kernel/qapplication.cpp:4296
#25 0x00007f47255ab6fb in QApplication::notify (this=0xbd6da0, receiver=0x1940e50, e=0x7fff3614def0) at kernel/qapplication.cpp:4183
#26 0x00007f4726950526 in KApplication::notify (this=0xbd6da0, receiver=0x1940e50, event=0x7fff3614def0) at ../../kdeui/kernel/kapplication.cpp:302
#27 0x00007f472640906c in QCoreApplication::notifyInternal (this=0xbd6da0, receiver=0x1940e50, event=0x7fff3614def0) at kernel/qcoreapplication.cpp:704
#28 0x00007f47256037dd in QCoreApplication::sendSpontaneousEvent (this=0x20edd10, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, 
    backingStore=0x129e210) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:218
#29 QWidgetPrivate::drawWidget (this=0x20edd10, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, backingStore=0x129e210)
    at kernel/qwidget.cpp:5339
#30 0x00007f4725604478 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=2, rgn=<value optimized out>, 
    offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x129e210) at kernel/qwidget.cpp:5452
#31 0x00007f47256042a9 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=4, rgn=<value optimized out>, 
    offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x129e210) at kernel/qwidget.cpp:5439
#32 0x00007f47256042a9 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=5, rgn=<value optimized out>, 
    offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x129e210) at kernel/qwidget.cpp:5439
#33 0x00007f47256042a9 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=6, rgn=<value optimized out>, 
    offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x129e210) at kernel/qwidget.cpp:5439
#34 0x00007f47256042a9 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=7, rgn=<value optimized out>, 
    offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x129e210) at kernel/qwidget.cpp:5439
#35 0x00007f472560353a in QWidgetPrivate::drawWidget (this=0x20e8940, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, 
    backingStore=0x129e210) at kernel/qwidget.cpp:5388
#36 0x00007f47257bd8c5 in QWidgetBackingStore::sync (this=0x129e210) at painting/qbackingstore.cpp:1291
#37 0x00007f47255f4b60 in QWidgetPrivate::syncBackingStore (this=0x20e8940) at kernel/qwidget.cpp:1672
#38 0x00007f47255fb865 in QWidget::event (this=0x1324a40, event=0x4af73a0) at kernel/qwidget.cpp:8291
#39 0x00007f47259a24e6 in QFrame::event (this=0x1324a40, e=0x4af73a0) at widgets/qframe.cpp:557
#40 0x00007f4725a2d8ab in QAbstractScrollArea::event (this=0x1324a40, e=0x4af73a0) at widgets/qabstractscrollarea.cpp:989
#41 0x00007f471b388590 in PanelView::event (this=0x1324a40, event=0x4af73a0) at ../../../../plasma/desktop/shell/panelview.cpp:1314
#42 0x00007f47255a522c in QApplicationPrivate::notify_helper (this=0xc053a0, receiver=0x1324a40, e=0x4af73a0) at kernel/qapplication.cpp:4300
#43 0x00007f47255ab6fb in QApplication::notify (this=0xbd6da0, receiver=0x1324a40, e=0x4af73a0) at kernel/qapplication.cpp:4183
#44 0x00007f4726950526 in KApplication::notify (this=0xbd6da0, receiver=0x1324a40, event=0x4af73a0) at ../../kdeui/kernel/kapplication.cpp:302
#45 0x00007f472640906c in QCoreApplication::notifyInternal (this=0xbd6da0, receiver=0x1324a40, event=0x4af73a0) at kernel/qcoreapplication.cpp:704
#46 0x00007f472640b7e7 in QCoreApplication::sendEvent (receiver=0x1324a40, event_type=<value optimized out>, data=0xb80c30) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#47 QCoreApplicationPrivate::sendPostedEvents (receiver=0x1324a40, event_type=<value optimized out>, data=0xb80c30) at kernel/qcoreapplication.cpp:1345
#48 0x00007f4725bceb7a in QGraphicsViewPrivate::dispatchPendingUpdateRequests (this=0xc92ce0) at ../../include/QtGui/private/../../../src/gui/graphicsview/qgraphicsview_p.h:184
#49 QGraphicsScenePrivate::_q_processDirtyItems (this=0xc92ce0) at graphicsview/qgraphicsscene.cpp:509
#50 0x00007f4725bcf102 in QGraphicsScene::qt_metacall (this=0xd3b4f0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x4ce9f00) at .moc/release-shared/moc_qgraphicsscene.cpp:130
#51 0x00007f471ee0eb65 in Plasma::Corona::qt_metacall (this=0x7fff3614b500, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x3c85cf0) at ./corona.moc:107
#52 0x00007f471b377bd3 in DesktopCorona::qt_metacall (this=0x7fff3614b500, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x3c85cf0) at ./desktopcorona.moc:86
#53 0x00007f4726418d49 in QObject::event (this=0xd3b4f0, e=0x4aefd10) at kernel/qobject.cpp:1248
#54 0x00007f4725bcad80 in QGraphicsScene::event (this=0xd3b4f0, event=0x4aefd10) at graphicsview/qgraphicsscene.cpp:3500
#55 0x00007f47255a522c in QApplicationPrivate::notify_helper (this=0xc053a0, receiver=0xd3b4f0, e=0x4aefd10) at kernel/qapplication.cpp:4300
#56 0x00007f47255ab6fb in QApplication::notify (this=0xbd6da0, receiver=0xd3b4f0, e=0x4aefd10) at kernel/qapplication.cpp:4183
#57 0x00007f4726950526 in KApplication::notify (this=0xbd6da0, receiver=0xd3b4f0, event=0x4aefd10) at ../../kdeui/kernel/kapplication.cpp:302
#58 0x00007f472640906c in QCoreApplication::notifyInternal (this=0xbd6da0, receiver=0xd3b4f0, event=0x4aefd10) at kernel/qcoreapplication.cpp:704
#59 0x00007f472640b7e7 in QCoreApplication::sendEvent (receiver=0x0, event_type=<value optimized out>, data=0xb80c30) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#60 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=<value optimized out>, data=0xb80c30) at kernel/qcoreapplication.cpp:1345
#61 0x00007f47264329d3 in QCoreApplication::sendPostedEvents (s=<value optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#62 postEventSourceDispatch (s=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:276
#63 0x00007f47217ec8c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#64 0x00007f47217f0748 in ?? () from /lib/libglib-2.0.so.0
#65 0x00007f47217f08fc in g_main_context_iteration () from /lib/libglib-2.0.so.0
#66 0x00007f4726432513 in QEventDispatcherGlib::processEvents (this=0xc04d60, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#67 0x00007f472565546e in QGuiEventDispatcherGlib::processEvents (this=0x7fff3614b500, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#68 0x00007f4726407992 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#69 0x00007f4726407d6c in QEventLoop::exec (this=0x7fff36150720, flags=) at kernel/qeventloop.cpp:201
#70 0x00007f472640baab in QCoreApplication::exec () at kernel/qcoreapplication.cpp:981
#71 0x00007f471b37efb2 in kdemain (argc=<value optimized out>, argv=<value optimized out>) at ../../../../plasma/desktop/shell/main.cpp:112
#72 0x00000000004070f3 in launch (argc=1, _name=<value optimized out>, args=<value optimized out>, cwd=<value optimized out>, envc=0, envs=<value optimized out>, reset_env=false, tty=0x0, 
    avoid_loops=false, startup_id_str=0x40a4f9 "0") at ../../kinit/kinit.cpp:717
#73 0x0000000000407cb0 in handle_launcher_request (sock=8, who=<value optimized out>) at ../../kinit/kinit.cpp:1209
#74 0x000000000040823a in handle_requests (waitForPid=0) at ../../kinit/kinit.cpp:1402
#75 0x0000000000408e22 in main (argc=4, argv=<value optimized out>, envp=<value optimized out>) at ../../kinit/kinit.cpp:1845

Possible duplicates by query: bug 234091, bug 233844.

Reported using DrKonqi
Comment 1 Aaron J. Seigo 2010-05-04 05:59:38 UTC
bug in fancytasks, which is a third party widget.
Comment 2 Michał D. (Emdek) 2010-05-04 10:43:07 UTC
(In reply to comment #1)
> bug in fancytasks, which is a third party widget.

Or in taskmanager library (time to drop this dependency).

I've added next workaround for checking if task object is valid, should help, I'll post update soon.
Comment 3 Aaron J. Seigo 2010-05-04 18:45:06 UTC
"Or in taskmanager library (time to drop this dependency)"

yes, it is time to do something with that dependency, and not because of bugs in it (which isn't the case here, btw) but because it is in kdebase-workspace and has no binary compatibility guarantees. without BC guarantees, using it from a component with a separate release is gambling for problems.

there are three possible routes that i see:

* stop using libtaskmanger from kdebase/workspace

* provide a copy of libtaskmanger (with the installed library binary named something different :) with your widget, avoiding BC issues

* go over the public libtaskmanager API once more to ensure we can reasonably start doing BC releases (e.g. make sure every public class has a dptr, that there aren't any protected or private members that shouldn't be there, move the "internal" methods that are publicly exposed in classes like Task to a private class) and then we can start doing BC releases from 4.5 on.

the third choice is the best long term strategy as it allows us to share code and efforts. the second choice is the easiest. you can find me, and the rest of the gang, in #plasma on irc or on plasma-devel@kde.org if you'd like to pursue, or even just explore pursuing, the third option.
Comment 4 Michał D. (Emdek) 2010-05-04 18:55:12 UTC
Yeah, but I've already wrote on mailing list why libtaskmanager I (and not only me) don't want use it anymore and use own flexible engine.

But anyway third option is best, but I want to first experiment with architecture described on mailing list.
Comment 5 Beat Wolf 2010-05-29 11:32:32 UTC
*** Bug 239947 has been marked as a duplicate of this bug. ***