| 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/Implemented 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. *** |