[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