Bug 192599 - Plasma crash when removing Folder View widget from the panel.
Summary: Plasma crash when removing Folder View widget from the panel.
Status: RESOLVED FIXED
Alias: None
Product: plasma4
Classification: Unmaintained
Component: widget-folderview (other bugs)
Version First Reported In: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
: 190018 192767 193222 193787 194090 194458 (view as bug list)
Depends on:
Blocks:
 
Reported: 2009-05-13 20:46 UTC by Sean Wilson
Modified: 2009-05-28 19:39 UTC (History)
12 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sean Wilson 2009-05-13 20:46:50 UTC
Version:            (using Devel)
Compiler:          gcc version 4.4.0 
OS:                Linux
Installed from:    Compiled sources

How to reproduce.

1. Drag the Folder View widget into the panel.
2. Right click, 'Remove this Folder View'

Plasma always crashes.

Backtrace. Sorry don't have Qt debug symbols with Archlinux :(.

Application: Plasma Workspace (plasma-desktop), signal: Segmentation fault
[Current thread is 0 (LWP 893)]

Thread 3 (Thread 0x7fd105fbe950 (LWP 894)):
#0  0x00007fd120ff7be9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007fd121267c59 in QWaitCondition::wait () from /usr/lib/libQtCore.so.4
#2  0x00007fd124a282fc in ?? () from /usr/lib/libQtNetwork.so.4
#3  0x00007fd121266c62 in ?? () from /usr/lib/libQtCore.so.4
#4  0x00007fd120ff33b4 in start_thread () from /lib/libpthread.so.0
#5  0x00007fd1205c189d in clone () from /lib/libc.so.6

Thread 2 (Thread 0x7fd103d64950 (LWP 896)):
#0  0x00007fd120ff7e6d in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007fd121267c37 in QWaitCondition::wait () from /usr/lib/libQtCore.so.4
#2  0x00007fd12125d819 in ?? () from /usr/lib/libQtCore.so.4
#3  0x00007fd121266c62 in ?? () from /usr/lib/libQtCore.so.4
#4  0x00007fd120ff33b4 in start_thread () from /lib/libpthread.so.0
#5  0x00007fd1205c189d in clone () from /lib/libc.so.6

Thread 1 (Thread 0x7fd12606e7a0 (LWP 893)):
[KCrash Handler]
#5  0x00007fd1220716e9 in QGraphicsWidget::removeAction () from /usr/lib/libQtGui.so.4
#6  0x00007fd121a545b8 in QAction::~QAction () from /usr/lib/libQtGui.so.4
#7  0x00007fd121ab2eb2 in QWidgetAction::~QWidgetAction () from /usr/lib/libQtGui.so.4
#8  0x00007fd12428e65e in ~KAction (this=0x1ebcf00) at /home/sean/Compiled/trunk/kdelibs/kdeui/actions/kaction.cpp:128
#9  0x00007fd12135dd51 in QObjectPrivate::deleteChildren () from /usr/lib/libQtCore.so.4
#10 0x00007fd121366327 in QObject::~QObject () from /usr/lib/libQtCore.so.4
#11 0x00007fd122073342 in QGraphicsWidget::~QGraphicsWidget () from /usr/lib/libQtGui.so.4
#12 0x00007fd125765c2a in ~Applet (this=0x1ef33f0) at /home/sean/Compiled/trunk/kdelibs/plasma/applet.cpp:185
#13 0x00007fd106aa74dd in ~FolderView (this=0x1ef33f0) at /home/sean/Compiled/trunk/kdebase/apps/plasma/applets/folderview/folderview.cpp:420
#14 0x00007fd12135f425 in QObject::event () from /usr/lib/libQtCore.so.4
#15 0x00007fd122070f4b in QGraphicsWidget::event () from /usr/lib/libQtGui.so.4
#16 0x00007fd121a5840d in QApplicationPrivate::notify_helper () from /usr/lib/libQtGui.so.4
#17 0x00007fd121a6068a in QApplication::notify () from /usr/lib/libQtGui.so.4
#18 0x00007fd124342cee in KApplication::notify (this=0x15165d0, receiver=0x1ef33f0, event=0x1ecf2a0) at /home/sean/Compiled/trunk/kdelibs/kdeui/kernel/kapplication.cpp:307
#19 0x00007fd12134f39c in QCoreApplication::notifyInternal () from /usr/lib/libQtCore.so.4
#20 0x00007fd12135000a in QCoreApplicationPrivate::sendPostedEvents () from /usr/lib/libQtCore.so.4
#21 0x00007fd121378d83 in ?? () from /usr/lib/libQtCore.so.4
#22 0x00007fd11cc0601a in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#23 0x00007fd11cc096e0 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#24 0x00007fd11cc0987c in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#25 0x00007fd121378a0f in QEventDispatcherGlib::processEvents () from /usr/lib/libQtCore.so.4
#26 0x00007fd121aefaff in ?? () from /usr/lib/libQtGui.so.4
#27 0x00007fd12134dc42 in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
#28 0x00007fd12134e00d in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#29 0x00007fd1213502d4 in QCoreApplication::exec () from /usr/lib/libQtCore.so.4
#30 0x00007fd125d45d00 in kdemain (argc=<value optimized out>, argv=<value optimized out>) at /home/sean/Compiled/trunk/kdebase/workspace/plasma/shells/desktop/main.cpp:50
#31 0x00007fd12051455d in __libc_start_main () from /lib/libc.so.6
#32 0x00000000004007d9 in _start ()
Comment 1 Anne-Marie Mahfouf 2009-05-13 20:58: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
Comment 2 Dario Andres 2009-05-15 15:06:45 UTC
*** Bug 192767 has been marked as a duplicate of this bug. ***
Comment 3 Dario Andres 2009-05-19 14:11:54 UTC
*** Bug 193222 has been marked as a duplicate of this bug. ***
Comment 4 Dario Andres 2009-05-23 18:46:08 UTC
*** Bug 193787 has been marked as a duplicate of this bug. ***
Comment 5 Dario Andres 2009-05-23 20:10:17 UTC
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.
Comment 6 Dario Andres 2009-05-26 00:04:33 UTC
*** Bug 194090 has been marked as a duplicate of this bug. ***
Comment 7 Paweł Prażak 2009-05-26 12:49:48 UTC
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
Comment 8 Aaron J. Seigo 2009-05-27 01:53:35 UTC
*** Bug 190018 has been marked as a duplicate of this bug. ***
Comment 9 Aaron J. Seigo 2009-05-27 01:56:01 UTC
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?
Comment 10 Alessandro 2009-05-27 09:14:37 UTC
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"
Comment 11 Alexis MENARD 2009-05-28 17:12:53 UTC
Close with commit 974139.
Comment 12 Dario Andres 2009-05-28 19:39:24 UTC
*** Bug 194458 has been marked as a duplicate of this bug. ***