Summary: | Plasma crash when removing Folder View widget from the panel. | ||
---|---|---|---|
Product: | [Unmaintained] plasma4 | Reporter: | Sean Wilson <SuseUX> |
Component: | widget-folderview | Assignee: | Plasma Bugs List <plasma-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | alediaferia, ale_gutier, andresbajotierra, annma, antholinux, aseigo, babebox666, darktears31, dpbasti, jdchoate, kojot350, raul.moratalla |
Priority: | NOR | ||
Version First Reported In: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Sean Wilson
2009-05-13 20:46:50 UTC
Application: Espace de travail Plasma (plasma-desktop), signal: Aborted [Current thread is 1 (Thread 0xb4e8d6d0 (LWP 27579))] Thread 2 (Thread 0xa9754b90 (LWP 27580)): #0 0xffffe424 in __kernel_vsyscall () #1 0xb6597b95 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i686/libpthread.so.0 #2 0xb65fc6b4 in QWaitConditionPrivate::wait (this=0xa3f1950, time=4294967295) at thread/qwaitcondition_unix.cpp:87 #3 0xb65fc1b3 in QWaitCondition::wait (this=0xa32aa98, mutex=0xa32aa94, time=4294967295) at thread/qwaitcondition_unix.cpp:159 #4 0xb799236f in QHostInfoAgent::run (this=0xa32aa88) at kernel/qhostinfo.cpp:260 #5 0xb65fbd8f in QThreadPrivate::start (arg=0xa32aa88) at thread/qthread_unix.cpp:189 #6 0xb6594315 in start_thread () from /lib/i686/libpthread.so.0 #7 0xb63f2d4e in clone () from /lib/i686/libc.so.6 Thread 1 (Thread 0xb4e8d6d0 (LWP 27579)): [KCrash Handler] #6 0xffffe424 in __kernel_vsyscall () #7 0xb6343da0 in raise () from /lib/i686/libc.so.6 #8 0xb6345808 in abort () from /lib/i686/libc.so.6 #9 0xb65f1b3f in qt_message_output (msgType=QtFatalMsg, buf=0xa788790 "ASSERT failure in QList<T>::at: \"index out of range\", file ../../include/QtCore/../../src/corelib/tools/qlist.h, line 395") at global/qglobal.cpp:2017 #10 0xb65f1bb6 in qFatal (msg=0xb6746138 "ASSERT failure in %s: \"%s\", file %s, line %d") at global/qglobal.cpp:2216 #11 0xb65f1c0d in qt_assert_x (where=0xb704d9a8 "QList<T>::at", what=0xb704d995 "index out of range", file=0xb704d960 "../../include/QtCore/../../src/corelib/tools/qlist.h", line=395) at global/qglobal.cpp:1794 #12 0xb6957d22 in QList<QGraphicsWidget*>::at (this=0xa5f81f8, i=0) at ../../include/QtCore/../../src/corelib/tools/qlist.h:395 #13 0xb69538f7 in ~QAction (this=0xa7888f8) at kernel/qaction.cpp:609 #14 0xb69c7df1 in ~QWidgetAction (this=0xa7888f8) at kernel/qwidgetaction.cpp:130 #15 0xb7634480 in ~KAction (this=0xa7888f8) at /usr/local/trunk-src/kdelibs/kdeui/actions/kaction.cpp:128 #16 0xb6700fc7 in QObjectPrivate::deleteChildren (this=0xa2f3120) at kernel/qobject.cpp:1845 #17 0xb6708467 in ~QObject (this=0xa2f2f48) at kernel/qobject.cpp:844 #18 0xb7011b25 in ~QGraphicsWidget (this=0xa2f2f48) at graphicsview/qgraphicswidget.cpp:309 #19 0xb7e27db2 in ~Applet (this=0xa2f2f48) at /usr/local/trunk-src/kdelibs/plasma/applet.cpp:185 #20 0xb7e41735 in ~Containment (this=0xa2f2f48) at /usr/local/trunk-src/kdelibs/plasma/containment.cpp:119 #21 0xa985b6ac in ~FolderView (this=0xa2f2f48) at /usr/local/trunk-src/kdebase/apps/plasma/applets/folderview/folderview.cpp:420 #22 0xb6700b3f in qDeleteInEventHandler (o=0xa2f2f48) at kernel/qobject.cpp:3813 #23 0xb6705018 in QObject::event (this=0xa2f2f48, e=0xa881ac0) at kernel/qobject.cpp:1092 #24 0xb700e503 in QGraphicsWidget::event (this=0xa2f2f48, event=0xa881ac0) at graphicsview/qgraphicswidget.cpp:1340 #25 0xb695b10d in QApplicationPrivate::notify_helper (this=0x9f6e988, receiver=0xa2f2f48, e=0xa881ac0) at kernel/qapplication.cpp:4057 #26 0xb695b4c1 in QApplication::notify (this=0x9f657b8, receiver=0xa2f2f48, e=0xa881ac0) at kernel/qapplication.cpp:3604 #27 0xb7710605 in KApplication::notify (this=0x9f657b8, receiver=0xa2f2f48, event=0xa881ac0) at /usr/local/trunk-src/kdelibs/kdeui/kernel/kapplication.cpp:307 #28 0xb66f0d63 in QCoreApplication::notifyInternal (this=0x9f657b8, receiver=0xa2f2f48, event=0xa881ac0) at kernel/qcoreapplication.cpp:606 #29 0xb6957ae1 in QCoreApplication::sendEvent (receiver=0xa2f2f48, event=0xa881ac0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:213 #30 0xb66f124b in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x9f4ff90) at kernel/qcoreapplication.cpp:1244 #31 0xb66f1407 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1140 #32 0xb6a0a36c in QCoreApplication::sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:218 #33 0xb6720709 in postEventSourceDispatch (s=0x9f706e8) at kernel/qeventdispatcher_glib.cpp:209 #34 0xb52467ca in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #35 0xb5249ee8 in ?? () from /usr/lib/libglib-2.0.so.0 #36 0xb524a0a8 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #37 0xb671faf2 in QEventDispatcherGlib::processEvents (this=0x9f6df70, flags={i = -1078837912}) at kernel/qeventdispatcher_glib.cpp:324 #38 0xb6a08b58 in QGuiEventDispatcherGlib::processEvents (this=0x9f6df70, flags={i = -1078837864}) at kernel/qguieventdispatcher_glib.cpp:202 #39 0xb66edd48 in QEventLoop::processEvents (this=0xbfb23e20, flags={i = -1078837792}) at kernel/qeventloop.cpp:149 #40 0xb66edfa2 in QEventLoop::exec (this=0xbfb23e20, flags={i = -1078837720}) at kernel/qeventloop.cpp:196 #41 0xb66f153b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888 #42 0xb695ae26 in QApplication::exec () at kernel/qapplication.cpp:3526 #43 0xb7fc100a in kdemain (argc=1, argv=0xbfb23fb4) at /usr/local/trunk-src/kdebase/workspace/plasma/shells/desktop/main.cpp:50 #44 0x080486f6 in main (argc=) at /home/annma/build/kdebase/workspace/plasma/shells/desktop/plasma-desktop_dummy.cpp:3 *** Bug 192767 has been marked as a duplicate of this bug. *** *** Bug 193222 has been marked as a duplicate of this bug. *** *** Bug 193787 has been marked as a duplicate of this bug. *** Another simple testcase to reproduce: Launch "plasmoidviewer folderview -f horizontal -c panel" Now: remove the applet from the panel or just close plasmoidviewer window. You will get this crash. *** Bug 194090 has been marked as a duplicate of this bug. *** Same story. --- Linux 2.6.27.21-0.1-default x86_64 openSUSE 11.1 (x86_64) Qt: 4.5.1 KDE: 4.2.86 (KDE 4.2.86 (KDE 4.3 >= 20090514)) "release 126" Plasma Workspace: 0.3 x11-video-nvidiaG02-180.51-1.1 Shockwave Flash 10.0 r22 x86-64 ---- Application: Plasma Workspace (kdeinit), signal: Segmentation fault [Current thread is 1 (Thread 0x7f2e3dd6c750 (LWP 4129))] Thread 2 (Thread 0x7f2e1ba93950 (LWP 4134)): #0 0x00007f2e3d542d59 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 #1 0x00007f2e3d7b3ed9 in QWaitCondition::wait (this=0xcc92d0, mutex=0xcc92c8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87 #2 0x00007f2e3c3d65ec in QHostInfoAgent::run (this=0xcc92b0) at kernel/qhostinfo.cpp:260 #3 0x00007f2e3d7b2f22 in QThreadPrivate::start (arg=0xcc92b0) at thread/qthread_unix.cpp:189 #4 0x00007f2e3d53f070 in start_thread () from /lib64/libpthread.so.0 #5 0x00007f2e3a06010d in clone () from /lib64/libc.so.6 #6 0x0000000000000000 in ?? () Thread 1 (Thread 0x7f2e3dd6c750 (LWP 4129)): [KCrash Handler] #5 QGraphicsWidget::removeAction (this=0x63002d006500ad, action=0x413ca90) at graphicsview/qgraphicswidget.h:228 #6 0x00007f2e3abfa938 in ~QAction (this=0x413ca90) at kernel/qaction.cpp:610 #7 0x00007f2e3ac59022 in ~QWidgetAction (this=0x413ca90) at kernel/qwidgetaction.cpp:130 #8 0x00007f2e3bc4189e in ~KAction (this=0x413ca90) at /usr/src/debug/kdelibs-4.2.85/kdeui/actions/kaction.cpp:128 #9 0x00007f2e3d8aabf1 in QObjectPrivate::deleteChildren (this=0x412a640) at kernel/qobject.cpp:1854 #10 0x00007f2e3d8b3267 in ~QObject (this=0x3e1c110) at kernel/qobject.cpp:844 #11 0x00007f2e3b1ff092 in ~QGraphicsWidget (this=0x3e1c110) at graphicsview/qgraphicswidget.cpp:309 #12 0x00007f2e34c1b3f9 in ~Applet (this=0x3e1c110) at /usr/src/debug/kdelibs-4.2.85/plasma/applet.cpp:185 #13 0x00007f2e1e755620 in ~FolderView (this=0x3e1c110) at /usr/src/debug/kdebase-4.2.85/apps/plasma/applets/folderview/folderview.cpp:420 #14 0x00007f2e3d8ac2d5 in QObject::event (this=0x3e1c110, e=0x413ca90) at kernel/qobject.cpp:1101 #15 0x00007f2e3b1fcd2b in QGraphicsWidget::event (this=0x3e1c110, event=0x42753c0) at graphicsview/qgraphicswidget.cpp:1340 #16 0x00007f2e3abfe78d in QApplicationPrivate::notify_helper (this=0x67ce80, receiver=0x3e1c110, e=0x42753c0) at kernel/qapplication.cpp:4057 #17 0x00007f2e3ac06a2a in QApplication::notify (this=0x674080, receiver=0x3e1c110, e=0x42753c0) at kernel/qapplication.cpp:4022 #18 0x00007f2e3bd1337b in KApplication::notify (this=0x674080, receiver=0x3e1c110, event=0x42753c0) at /usr/src/debug/kdelibs-4.2.85/kdeui/kernel/kapplication.cpp:307 #19 0x00007f2e3d89c15c in QCoreApplication::notifyInternal (this=0x674080, receiver=0x3e1c110, event=0x42753c0) at kernel/qcoreapplication.cpp:610 #20 0x00007f2e3d89cdda in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x615440) at kernel/qcoreapplication.h:213 #21 0x00007f2e3d8c5c13 in postEventSourceDispatch (s=<value optimized out>) at kernel/qcoreapplication.h:218 #22 0x00007f2e396de0fb in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0 #23 0x00007f2e396e18cd in ?? () from /usr/lib64/libglib-2.0.so.0 #24 0x00007f2e396e1a8b in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #25 0x00007f2e3d8c589f in QEventDispatcherGlib::processEvents (this=0x67c7e0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:324 #26 0x00007f2e3ac95b0f in QGuiEventDispatcherGlib::processEvents (this=0x63002d006500ad, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:202 #27 0x00007f2e3d89a9f2 in QEventLoop::processEvents (this=<value optimized out>, flags={i = 1171971664}) at kernel/qeventloop.cpp:149 #28 0x00007f2e3d89adbd in QEventLoop::exec (this=0x7fff45dade90, flags={i = 1171971744}) at kernel/qeventloop.cpp:200 #29 0x00007f2e3d89d0a4 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888 #30 0x00007f2e31228aab in kdemain (argc=1, argv=0x6335f0) at /usr/src/debug/kdebase-workspace-4.2.85/plasma/shells/desktop/main.cpp:50 #31 0x00000000004071fe in launch (argc=1, _name=0x659a28 "/usr/bin/plasma-desktop", args=<value optimized out>, cwd=0x0, envc=0, envs=0x659a48 "", reset_env=false, tty=0x0, avoid_loops=false, startup_id_str=0x40a364 "0") at /usr/src/debug/kdelibs-4.2.85/kinit/kinit.cpp:667 #32 0x0000000000407a28 in handle_launcher_request (sock=7, who=<value optimized out>) at /usr/src/debug/kdelibs-4.2.85/kinit/kinit.cpp:1159 #33 0x0000000000407fd5 in handle_requests (waitForPid=0) at /usr/src/debug/kdelibs-4.2.85/kinit/kinit.cpp:1352 #34 0x0000000000408af2 in main (argc=2, argv=0x7fff45daed18, envp=0x7fff45daed30) at /usr/src/debug/kdelibs-4.2.85/kinit/kinit.cpp:1779 *** Bug 190018 has been marked as a duplicate of this bug. *** what's happening is that there is an action that is the child of the graphics widget; the graphics widget get destroyed and when in ~QObject the children are then deleted .... which triggers QGraphicsWidget::removeAction, but it's dtor has already been executed so it's no longer a valid QGraphicsWidget object and *poof*.. i think what probably needs to happen is in ~QGraphicsWidget, all actions need to be removed there, or at least disconnected from the widget so that their deletion doesn't trigger this code path. Alexis? yeah Aaron, i fixed it simply doing removeAction to every action added to the widget in the dtor but i didn't commit since it seemed to me a "somewhere-else-bug" Close with commit 974139. *** Bug 194458 has been marked as a duplicate of this bug. *** |