[Bug 164849] New: [testcase] Plasma crash when moving widgets from desktop to panel
Christophe Giboudeaux
kropx77 at gmail.com
Tue Jun 24 19:09:38 CEST 2008
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.kde.org/show_bug.cgi?id=164849
Summary: [testcase] Plasma crash when moving widgets from desktop
to panel
Product: plasma
Version: unspecified
Platform: unspecified
OS/Version: Linux
Status: NEW
Severity: crash
Priority: NOR
Component: general
AssignedTo: panel-devel kde org
ReportedBy: kropx77 gmail com
Version: unknown (using 4.00.83 (KDE 4.0.83 (KDE 4.1 Beta2), compiled sources)
Compiler: gcc-4.3
OS: Linux (i686) release 2.6.25-2-486
It will be long and as detailed as possible :-) (there are possibly several bugs embedded)
kdebase svn revision 824012
Testcase :
1/ put yourself in conditions : kquitapp plasma && killall plasma (that's important for the demo) move the config files elsewhere
2/ start plasma from a console, I get the content of file #1 (Alexis is aware of the device notifier errors)
3/ Add the trash widget to the desktop
4/ Now, drag this widget from the desktop to the panel.
You get this (at least, here) :
plasma(6575)/libplasma Plasma::AppletHandle::mouseMoveEvent: screenRect = QRect(20,1188 86x78)
plasma(6575)/libplasma Plasma::AppletHandle::switchContainment: panel
Plasma crashed, attempting to automatically recover
KCrash: crashing... crashRecursionCounter = 2
KCrash: Application Name = plasma path = <unknown> pid = 6575
sock_file=/home/krop/.kde/socket-mokona/kdeinit4__0
<unknown program name>(6676)/ checkComposite: Plasma has an argb visual 0x9c10400 33554433
<unknown program name>(6676)/ checkComposite: Plasma is COMPOSITE-less on 0x9c08f00
plasma(6678) PlasmaApp::PlasmaApp: Setting the pixmap cache size to 9064 kilobytes
plasma(6678)/libplasma Plasma::Corona::Private::addContainment: loading of containment "" failed.
plasma(6678)/kdecore (KSycoca) KSycocaPrivate::openDatabase: Trying to open ksycoca from "/var/tmp/kdecache-krop/ksycoca4"
findServiceByDesktopPath: not found
plasma(6678)/libplasma Plasma::Applet::Private::init: Check your constructor! You probably want to be passing in a Service::Ptr or a QVariantList with a valid storageid as arg[0].
plasma(6678) PlasmaApp::createView: Containment name: "Unknown Applet" | type 127 | screen: -1 | geometry: QRectF(0,0 0x0) | zValue: 0
plasma(6678) DefaultDesktop::reloadConfig: Using configured wallpaper "/opt/kde4/share/wallpapers/Blue_Curl/contents/images/1920x1200.jpg"
plasma(6678) PlasmaApp::createView: Containment name: "Desktop" | type 0 | screen: -1 | geometry: QRectF(0,0 22x23) | zValue: 0
Which means plasma was restarted *just* after the crash (the drKonqi window is still opened)
There's indeed two plasma processes running. The crashed one and a plasma --nocrashhandler that already started (at least, tried)
So let's see the backtrace for the crashed plasma :
(gdb) bt
#0 0xb7ee9430 in __kernel_vsyscall ()
#1 0xb5b18dc6 in nanosleep () from /lib/i686/cmov/libc.so.6
#2 0xb5b18bdf in sleep () from /lib/i686/cmov/libc.so.6
#3 0xb7980c74 in KCrash::startDrKonqi (argv=0xbfa02f9c, argc=17) at /media/kde/src/KDE/kdelibs/kdeui/util/kcrash.cpp:361
#4 0xb7981204 in KCrash::defaultCrashHandler (sig=11) at /media/kde/src/KDE/kdelibs/kdeui/util/kcrash.cpp:286
#5 <signal handler called>
#6 0xb64b30ec in QGraphicsScenePrivate::filterEvent (this=0x8cf79c0, item=0x945c070, event=0xbfa03388) at graphicsview/qgraphicsscene.cpp:1026
#7 0xb64b3171 in QGraphicsScenePrivate::sendEvent (this=0x8cf79c0, item=0x945c070, event=0xbfa03388) at graphicsview/qgraphicsscene.cpp:1044
#8 0xb64b63e2 in QGraphicsScenePrivate::sendHoverEvent (this=0x8cf79c0, type=QEvent::GraphicsSceneHoverLeave, item=0x945c070, hoverEvent=0xbfa034d0) at graphicsview/qgraphicsscene.cpp:1093
#9 0xb64bcd86 in QGraphicsScenePrivate::dispatchHoverEvent (this=0x8cf79c0, hoverEvent=0xbfa034d0) at graphicsview/qgraphicsscene.cpp:3402
#10 0xb64bfb3f in QGraphicsScene::mouseMoveEvent (this=0x8cf6ec8, mouseEvent=0xbfa039a0) at graphicsview/qgraphicsscene.cpp:3566
#11 0xb64bd06c in QGraphicsScene::event (this=0x8cf6ec8, event=0xbfa039a0) at graphicsview/qgraphicsscene.cpp:2984
#12 0xb5f00269 in QApplicationPrivate::notify_helper (this=0x8c2d150, receiver=0x8cf6ec8, e=0xbfa039a0) at kernel/qapplication.cpp:3772
#13 0xb5f0057e in QApplication::notify (this=0x8c0f198, receiver=0x8cf6ec8, e=0xbfa039a0) at kernel/qapplication.cpp:3366
#14 0xb7920701 in KApplication::notify (this=0x8c0f198, receiver=0x8cf6ec8, event=0xbfa039a0) at /media/kde/src/KDE/kdelibs/kdeui/kernel/kapplication.cpp:311
#15 0xb6ae426b in QCoreApplication::notifyInternal (this=0x8c0f198, receiver=0x8cf6ec8, event=0xbfa039a0) at kernel/qcoreapplication.cpp:583
#16 0xb70146eb in QCoreApplication::sendEvent (receiver=0x8cf6ec8, event=0xbfa039a0) at ../../../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#17 0xb64d1b04 in QGraphicsView::mouseMoveEvent (this=0x8e4a200, event=0xbfa041b4) at graphicsview/qgraphicsview.cpp:2702
#18 0xb5f5c388 in QWidget::event (this=0x8e4a200, event=0xbfa041b4) at kernel/qwidget.cpp:6912
#19 0xb62bf91a in QFrame::event (this=0x8e4a200, e=0xbfa041b4) at widgets/qframe.cpp:657
#20 0xb635552d in QAbstractScrollArea::viewportEvent (this=0x8e4a200, e=0xbfa041b4) at widgets/qabstractscrollarea.cpp:941
#21 0xb64cb9e5 in QGraphicsView::viewportEvent (this=0x8e4a200, event=0xbfa041b4) at graphicsview/qgraphicsview.cpp:2267
#22 0xb6358042 in QAbstractScrollAreaPrivate::viewportEvent (this=0x8e958e0, event=0xbfa041b4) at widgets/qabstractscrollarea_p.h:102
#23 0xb6358070 in QAbstractScrollAreaFilter::eventFilter (this=0x8f4c4b0, o=0x8f4bcb0, e=0xbfa041b4) at widgets/qabstractscrollarea_p.h:113
#24 0xb6ae263c in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=0x8c2d150, receiver=0x8f4bcb0, event=0xbfa041b4) at kernel/qcoreapplication.cpp:694
#25 0xb5f00246 in QApplicationPrivate::notify_helper (this=0x8c2d150, receiver=0x8f4bcb0, e=0xbfa041b4) at kernel/qapplication.cpp:3768
#26 0xb5f00de7 in QApplication::notify (this=0x8c0f198, receiver=0x8f4bcb0, e=0xbfa041b4) at kernel/qapplication.cpp:3501
#27 0xb7920701 in KApplication::notify (this=0x8c0f198, receiver=0x8f4bcb0, event=0xbfa041b4) at /media/kde/src/KDE/kdelibs/kdeui/kernel/kapplication.cpp:311
#28 0xb6ae426b in QCoreApplication::notifyInternal (this=0x8c0f198, receiver=0x8f4bcb0, event=0xbfa041b4) at kernel/qcoreapplication.cpp:583
#29 0xb5f0c0a3 in QCoreApplication::sendSpontaneousEvent (receiver=0x8f4bcb0, event=0xbfa041b4) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:218
#30 0xb5f04bb0 in QApplicationPrivate::sendMouseEvent (receiver=0x8f4bcb0, event=0xbfa041b4, alienWidget=0x8f4bcb0, nativeWidget=0x8e4a200, buttonDown=0xb65f5c20,
lastMouseReceiver= 0xb65f5c24) at kernel/qapplication.cpp:2766
#31 0xb5f7a7d2 in QETWidget::translateMouseEvent (this=0x8e4a200, event=0xbfa046a0) at kernel/qapplication_x11.cpp:4133
#32 0xb5f7b4f7 in QApplication::x11ProcessEvent (this=0x8c0f198, event=0xbfa046a0) at kernel/qapplication_x11.cpp:3133
#33 0xb5fa48de in x11EventSourceDispatch (s=0x8c2ff60, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:148
#34 0xb5802978 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#35 0xb5805bce in ?? () from /usr/lib/libglib-2.0.so.0
#36 0x08c2f260 in ?? ()
#37 0x00000000 in ?? ()
(
gdb) thread 2
[Switching to thread 2 (Thread 0xb1ca5b90 (LWP 6577))]#0 0xb7ee9430 in __kernel_vsyscall ()
(gdb) bt
#0 0xb7ee9430 in __kernel_vsyscall ()
#1 0xb698d015 in pthread_cond_wait GLIBC_2 3 2 () from /lib/i686/cmov/libpthread.so.0
#2 0xb69f5d48 in QWaitConditionPrivate::wait (this=0x8f7f3b8, time=4294967295) at thread/qwaitcondition_unix.cpp:88
#3 0xb69f5847 in QWaitCondition::wait (this=0x8dd4018, mutex=0x8dd4014, time=4294967295) at thread/qwaitcondition_unix.cpp:265
#4 0xb6789993 in QHostInfoAgent::run (this=0x8dd4008) at kernel/qhostinfo.cpp:247
#5 0xb69f5423 in QThreadPrivate::start (arg=0x8dd4008) at thread/qthread_unix.cpp:190
#6 0xb69894b0 in start_thread () from /lib/i686/cmov/libpthread.so.0
#7 0xb5b5d38e in clone () from /lib/i686/cmov/libc.so.6
(
gdb) thread 3
[Switching to thread 3 (Thread 0xb2c93b90 (LWP 6576))]#0 0xb7ee9430 in __kernel_vsyscall ()
(gdb) bt
#0 0xb7ee9430 in __kernel_vsyscall ()
#1 0xb698d015 in pthread_cond_wait GLIBC_2 3 2 () from /lib/i686/cmov/libpthread.so.0
#2 0xb69f5d48 in QWaitConditionPrivate::wait (this=0x8d85830, time=4294967295) at thread/qwaitcondition_unix.cpp:88
#3 0xb69f5847 in QWaitCondition::wait (this=0x8d3418c, mutex=0x8d34188, time=4294967295) at thread/qwaitcondition_unix.cpp:265
#4 0xb3033a4a in RenderThread::run (this=0x8d34180) at /media/kde/src/KDE/kdebase/workspace/plasma/containments/desktop/renderthread.cpp:84
#5 0xb69f5423 in QThreadPrivate::start (arg=0x8d34180) at thread/qthread_unix.cpp:190
#6 0xb69894b0 in start_thread () from /lib/i686/cmov/libpthread.so.0
#7 0xb5b5d38e in clone () from /lib/i686/cmov/libc.so.6
(gdb) quit
--
Problem then : if plasma restarted, why didn't my desktop and panel came back.
Attaching gdb to the remaining plasma process show it crashed (the backtrace is almost useless it seems)
gdb) bt
#0 0xb7fe1430 in __kernel_vsyscall ()
#1 0xb5c4ab27 in poll () from /lib/i686/cmov/libc.so.6
#2 0xb58fdbef in ?? () from /usr/lib/libglib-2.0.so.0
#3 0x09c2eda8 in ?? ()
#4 0x00000004 in ?? ()
#5 0xffffffff in ?? ()
#6 0x09c2eda8 in ?? ()
#7 0x00000004 in ?? ()
#8 0xb59725f8 in ?? () from /usr/lib/libglib-2.0.so.0
#9 0xb5972620 in ?? () from /usr/lib/libglib-2.0.so.0
#10 0xbfafa8e4 in ?? ()
#11 0x00000001 in ?? ()
#12 0x00000001 in ?? ()
#13 0x09c32438 in ?? ()
#14 0x09c2eda8 in ?? ()
#15 0xb5c4aab0 in ?? () from /lib/i686/cmov/libc.so.6
#16 0xb6a843e0 in ?? () from /lib/i686/cmov/libpthread.so.0
#17 0xb6a82970 in ?? () from /lib/i686/cmov/libpthread.so.0
#18 0xb5921f92 in g_thread_self () from /usr/lib/libglib-2.0.so.0
#19 0xb58fe11c in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#20 0xb6c09eb6 in QEventDispatcherGlib::processEvents (this=0x9c121c8, flags={i = -1079006872}) at kernel/qeventdispatcher_glib.cpp:325
#21 0xb609c0f8 in QGuiEventDispatcherGlib::processEvents (this=0x9c121c8, flags={i = -1079006824}) at kernel/qguieventdispatcher_glib.cpp:204
#22 0xb6bd928c in QEventLoop::processEvents (this=0xbfafaa10, flags={i = -1079006764}) at kernel/qeventloop.cpp:149
#23 0xb6bd94c9 in QEventLoop::exec (this=0xbfafaa10, flags={i = -1079006696}) at kernel/qeventloop.cpp:196
#24 0xb6bdca67 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:845
#25 0xb5ff7f82 in QApplication::exec () at kernel/qapplication.cpp:3304
#26 0xb7fc87e6 in kdemain (argc=2, argv=0xbfafac04) at /media/kde/src/KDE/kdebase/workspace/plasma/plasma/main.cpp:54
#27 0x08048812 in main (argc=Cannot access memory at address 0x4) at /media/kde/build/KDE/kdebase/workspace/plasma/plasma/plasma-qgv_dummy.cpp:3
(gdb) kill
Kill the program being debugged? (y or n) y
(gdb) quit
--
Last problem then. Killing this unexpected process won't make plasma work again :
plasma
<unknown program name>(6735)/ checkComposite: Plasma has an argb visual 0x8bc8408 10485761
<unknown program name>(6735)/ checkComposite: Plasma is COMPOSITE-less on 0x8bc0f08
plasma(6736) PlasmaApp::PlasmaApp: Setting the pixmap cache size to 9064 kilobytes
plasma(6736)/libplasma Plasma::Corona::Private::addContainment: loading of containment "" failed.
plasma(6736)/kdecore (KSycoca) KSycocaPrivate::openDatabase: Trying to open ksycoca from "/var/tmp/kdecache-krop/ksycoca4"
findServiceByDesktopPath: not found
plasma(6736)/libplasma Plasma::Applet::Private::init: Check your constructor! You probably want to be passing in a Service::Ptr or a QVariantList with a valid storageid as arg[0].
plasma(6736)/libplasma Plasma::Corona::Private::addContainment: loading of containment "" failed.
findServiceByDesktopPath: not found
plasma(6736)/libplasma Plasma::Applet::Private::init: Check your constructor! You probably want to be passing in a Service::Ptr or a QVariantList with a valid storageid as arg[0].
plasma(6736) PlasmaApp::createView: Containment name: "Unknown Applet" | type 127 | screen: -1 | geometry: QRectF(0,0 0x0) | zValue: 0
plasma(6736) PlasmaApp::createView: Containment name: "Unknown Applet" | type 127 | screen: -1 | geometry: QRectF(0,0 0x0) | zValue: 0
plasma(6736) DefaultDesktop::reloadConfig: Using configured wallpaper "/opt/kde4/share/wallpapers/Blue_Curl/contents/images/1920x1200.jpg"
plasma(6736) PlasmaApp::createView: Containment name: "Desktop" | type 0 | screen: -1 | geometry: QRectF(0,0 22x23) | zValue: 0
and that's all. There's a new plasma process but still no desktop.
For plasma to restart, I have to remove plasma-appletsrc then restart it (don't know if this detail may be important, but no plasmarc was created)
More information about the Panel-devel
mailing list