Bug 286353 - plasma desktop shell crash when switching desktop (TaskManager::TaskManager::desktopChanged, TaskManager::Task::isOnCurrentDesktop)
Summary: plasma desktop shell crash when switching desktop (TaskManager::TaskManager::...
Status: RESOLVED FIXED
Alias: None
Product: plasma4
Classification: Unmaintained
Component: widget-taskbar (show other bugs)
Version: unspecified
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
: 289461 290024 290829 291700 294953 295116 297093 298809 (view as bug list)
Depends on:
Blocks:
 
Reported: 2011-11-11 18:03 UTC by werschn
Modified: 2012-06-22 09:08 UTC (History)
8 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 werschn 2011-11-11 18:03:39 UTC
Application: plasma-desktop (0.4)
KDE Platform Version: 4.7.3 (4.7.3) "release 10"
Qt Version: 4.7.4
Operating System: Linux 3.1.0-46-desktop i686
Distribution: "openSUSE 11.4 (i586)"

-- Information about the crash:
- What I was doing when the application crashed:open new window; problem seems to happen not immediately after startup but after some changes of desktop and opening other windows. Problem occurs every time after some time of usage. There seems to be a "memory eater" that does not release memory properly or some code exceeds its allowed data range which is indicated by the error type "segmentation fault".

The crash can be reproduced some of the time.

-- Backtrace:
Application: Plasma Desktop Shell (kdeinit4), signal: Segmentation fault
[Current thread is 1 (Thread 0xb58d4710 (LWP 2207))]

Thread 2 (Thread 0xab666b70 (LWP 2227)):
#0  0xb5bf222b in clock_gettime () from /lib/librt.so.1
#1  0xb6e09345 in do_gettime () at tools/qelapsedtimer_unix.cpp:123
#2  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#3  0xb6edc1b6 in updateCurrentTime (this=0x87735f4, tm=...) at kernel/qeventdispatcher_unix.cpp:339
#4  QTimerInfoList::timerWait (this=0x87735f4, tm=...) at kernel/qeventdispatcher_unix.cpp:442
#5  0xb6eda9fb in timerSourcePrepareHelper (src=<value optimized out>, timeout=0xab66611c) at kernel/qeventdispatcher_glib.cpp:136
#6  0xb6edaa9d in timerSourcePrepare (source=0x87735c0, timeout=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:169
#7  0xb5b3ca70 in g_main_context_prepare () from /lib/libglib-2.0.so.0
#8  0xb5b3d8e2 in ?? () from /lib/libglib-2.0.so.0
#9  0xb5b3dfce in g_main_context_iteration () from /lib/libglib-2.0.so.0
#10 0xb6edb247 in QEventDispatcherGlib::processEvents (this=0x8773390, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#11 0xb6eabc5d in QEventLoop::processEvents (this=0xab6662b0, flags=...) at kernel/qeventloop.cpp:149
#12 0xb6eabe89 in QEventLoop::exec (this=0xab6662b0, flags=...) at kernel/qeventloop.cpp:201
#13 0xb6dacfd9 in QThread::exec (this=0x8771da0) at thread/qthread.cpp:498
#14 0xb6e8b9ed in QInotifyFileSystemWatcherEngine::run (this=0x8771da0) at io/qfilesystemwatcher_inotify.cpp:248
#15 0xb6dafc23 in QThreadPrivate::start (arg=0x8771da0) at thread/qthread_unix.cpp:331
#16 0xb6d32b05 in start_thread () from /lib/libpthread.so.0
#17 0xb60e3d1e in clone () from /lib/libc.so.6

Thread 1 (Thread 0xb58d4710 (LWP 2207)):
[KCrash Handler]
#7  KWindowInfo::valid (this=0x8, withdrawn_is_valid=true) at /usr/src/debug/kdelibs-4.7.3/kdeui/windowmanagement/kwindowinfo_x11.cpp:133
#8  0xb0c0cba0 in TaskManager::Task::isOnCurrentDesktop (this=0x8e5f738) at /usr/src/debug/kde-workspace-4.7.3/libs/taskmanager/task.cpp:211
#9  0xb092afb5 in TaskSource::updateDesktop (this=0x8e78a48, desktop=2) at /usr/src/debug/kde-workspace-4.7.3/plasma/generic/dataengines/tasks/tasksource.cpp:161
#10 0xb092b1d5 in TaskSource::qt_metacall (this=0x8e78a48, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0xbfbc2d48) at /usr/src/debug/kde-workspace-4.7.3/build/plasma/generic/dataengines/tasks/tasksource.moc:82
#11 0xb6eb326d in QMetaObject::metacall (object=0x8e78a48, cl=QMetaObject::InvokeMetaMethod, idx=16, argv=0xbfbc2d48) at kernel/qmetaobject.cpp:237
#12 0xb6ec279c in QMetaObject::activate (sender=0x88baff8, m=0xb0c32cec, local_signal_index=4, argv=0xbfbc2d48) at kernel/qobject.cpp:3287
#13 0xb0c1b075 in TaskManager::TaskManager::desktopChanged (this=0x88baff8, _t1=2) at /usr/src/debug/kde-workspace-4.7.3/build/libs/taskmanager/taskmanager.moc:200
#14 0xb0c1b0a3 in TaskManager::TaskManager::currentDesktopChanged (this=0x88baff8, desktop=2) at /usr/src/debug/kde-workspace-4.7.3/libs/taskmanager/taskmanager.cpp:429
#15 0xb0c1ce90 in TaskManager::TaskManager::qt_metacall (this=0x88baff8, _c=QMetaObject::InvokeMetaMethod, _id=11, _a=0xbfbc2ed8) at /usr/src/debug/kde-workspace-4.7.3/build/libs/taskmanager/taskmanager.moc:127
#16 0xb6eb326d in QMetaObject::metacall (object=0x88baff8, cl=QMetaObject::InvokeMetaMethod, idx=15, argv=0xbfbc2ed8) at kernel/qmetaobject.cpp:237
#17 0xb6ec279c in QMetaObject::activate (sender=0x8190678, m=0xb783ffac, local_signal_index=0, argv=0xbfbc2ed8) at kernel/qobject.cpp:3287
#18 0xb775b045 in KWindowSystem::currentDesktopChanged (this=0x8190678, _t1=2) at /usr/src/debug/kdelibs-4.7.3/build/kdeui/kwindowsystem.moc:122
#19 0xb775e5ec in KWindowSystemPrivate::x11Event (this=0x818ffd8, ev=0xbfbc308c) at /usr/src/debug/kdelibs-4.7.3/kdeui/windowmanagement/kwindowsystem_x11.cpp:175
#20 0xb76267a8 in publicX11Event (this=0x8105958, message=0xbfbc308c) at /usr/src/debug/kdelibs-4.7.3/kdeui/kernel/ksystemeventfilter.cpp:43
#21 KSystemEventFilterPrivate::filterEvent (this=0x8105958, message=0xbfbc308c) at /usr/src/debug/kdelibs-4.7.3/kdeui/kernel/ksystemeventfilter.cpp:102
#22 0xb762682a in _k_eventFilter (message=0xbfbc308c) at /usr/src/debug/kdelibs-4.7.3/kdeui/kernel/ksystemeventfilter.cpp:91
#23 0xb6e9d78c in QAbstractEventDispatcher::filterEvent (this=0x80de938, message=0xbfbc308c) at kernel/qabstracteventdispatcher.cpp:501
#24 0xb64649ea in x11EventSourceDispatch (s=0x80edc68, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:143
#25 0xb5b3d509 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#26 0xb5b3dd10 in ?? () from /lib/libglib-2.0.so.0
#27 0xb5b3dfce in g_main_context_iteration () from /lib/libglib-2.0.so.0
#28 0xb6edb1fb in QEventDispatcherGlib::processEvents (this=0x80de938, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#29 0xb64646aa in QGuiEventDispatcherGlib::processEvents (this=0x80de938, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#30 0xb6eabc5d in QEventLoop::processEvents (this=0xbfbc3344, flags=...) at kernel/qeventloop.cpp:149
#31 0xb6eabe89 in QEventLoop::exec (this=0xbfbc3344, flags=...) at kernel/qeventloop.cpp:201
#32 0xb6eb0930 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1064
#33 0xb63ab314 in QApplication::exec () at kernel/qapplication.cpp:3755
#34 0xb247269b in kdemain (argc=1, argv=0x80a4fe0) at /usr/src/debug/kde-workspace-4.7.3/plasma/desktop/shell/main.cpp:120
#35 0x0804e2a4 in _start ()

Reported using DrKonqi
Comment 1 Jonathan Marten 2011-11-26 07:54:27 UTC
Confirmed with current trunk using the method below.
@reporter: can you reproduce by doing...

Have more than 1 virtual desktop configured, and a mouse button bound to the Switch Window action.

Start with a new plasma desktop (either log in, or execute
killall plasma-desktop;sleep 1;plasma-desktop
in krunner).

Open some windows on various virtual desktops.

Open a small uncomplicated application (e.g. KCalc).

Click the mouse to pop up the Switch Window menu, but do not select anything - press Esc to close it.

Close the KCalc window.

Switch to another virtual desktop by any method - crash.
Comment 2 Jonathan Marten 2011-11-26 15:44:36 UTC
Patch submitted for review at https://git.reviewboard.kde.org/r/103247/
Comment 3 Aaron J. Seigo 2011-11-28 09:45:34 UTC
Git commit a4a4679d0e82d88392c2b6d9259ed441921914c4 by Aaron Seigo.
Committed on 28/11/2011 at 10:43.
Pushed by aseigo into branch 'master'.

workaround qt ref counting bug seen triggered often in libtaskmanager

not patching libplasma as i'd like to keep this mess limited to taskmanager related code
rather than burdoning all DataEngines with it. this requires today's KDE/4.7 libplasma to
work as expected: sourceRemoved was not being emitted for direct-deleted containers.

BUG:286353
REVIEW:103247

M  +12   -3    plasma/generic/dataengines/tasks/tasksengine.cpp

http://commits.kde.org/kde-workspace/a4a4679d0e82d88392c2b6d9259ed441921914c4
Comment 4 Jekyll Wu 2011-12-20 21:58:57 UTC
*** Bug 289461 has been marked as a duplicate of this bug. ***
Comment 5 Anne-Marie Mahfouf 2011-12-28 16:47:24 UTC
*** Bug 290024 has been marked as a duplicate of this bug. ***
Comment 6 Anne-Marie Mahfouf 2012-01-06 21:32:08 UTC
*** Bug 290829 has been marked as a duplicate of this bug. ***
Comment 7 Jekyll Wu 2012-01-17 02:45:35 UTC
*** Bug 291700 has been marked as a duplicate of this bug. ***
Comment 8 Jekyll Wu 2012-03-01 09:49:00 UTC
*** Bug 295116 has been marked as a duplicate of this bug. ***
Comment 9 Jekyll Wu 2012-03-30 07:30:08 UTC
*** Bug 297093 has been marked as a duplicate of this bug. ***
Comment 10 Jekyll Wu 2012-05-26 17:50:27 UTC
*** Bug 298809 has been marked as a duplicate of this bug. ***
Comment 11 Thijs 2012-06-22 09:08:09 UTC
*** Bug 294953 has been marked as a duplicate of this bug. ***