Review Request: Fix crash when zombie taskbar buttons are left

Valentin Rusu kde at rusu.info
Tue Nov 8 20:57:58 GMT 2011


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/103085/
-----------------------------------------------------------

Review request for KDE Runtime and Craig Drummond.


Description
-------

This fixes a crash I had in the following scenario:
- Launched Thunderbird, the opened it's address book, creating a second taskbar icon for it, after the main Thunderbird one,
- Close the address book - the taskbar button stayed there, despite corresponding window has gone,
- Launch another application -> crash

Thread 1 (Thread 0x7f2c87270760 (LWP 1206)):
[KCrash Handler]
#6  0x00007f2c8383d965 in raise () from /lib/libc.so.6
#7  0x00007f2c8383eddb in abort () from /lib/libc.so.6
#8  0x00007f2c8587aff3 in qt_message_output (msgType=QtFatalMsg, buf=0x31b7478 "ASSERT: \"pid != 0\" in file /home/kde/src/kde-workspace/libs/ksysguard/processcore/processes_linux_p.cpp, line 188") at global/qglobal.cpp:2255
#9  0x00007f2c8587b166 in qt_message(QtMsgType, const char *, typedef __va_list_tag __va_list_tag *) (msgType=QtFatalMsg, msg=0x7f2c85a3c728 "ASSERT: \"%s\" in file %s, line %d", ap=0x7fff0c2c2178) at global/qglobal.cpp:2301
#10 0x00007f2c8587b8f6 in qFatal (msg=0x7f2c85a3c728 "ASSERT: \"%s\" in file %s, line %d") at global/qglobal.cpp:2484
#11 0x00007f2c8587abb8 in qt_assert (assertion=0x7f2c670817e5 "pid != 0", file=0x7f2c67081798 "/home/kde/src/kde-workspace/libs/ksysguard/processcore/processes_linux_p.cpp", line=188) at global/qglobal.cpp:1999
#12 0x00007f2c670767cc in KSysGuard::ProcessesLocal::getParentPid (this=0x31b7610, pid=0) at /home/kde/src/kde-workspace/libs/ksysguard/processcore/processes_linux_p.cpp:188
#13 0x00007f2c67070fad in KSysGuard::Processes::updateOrAddProcess (this=0x7fff0c2c2370, pid=0) at /home/kde/src/kde-workspace/libs/ksysguard/processcore/processes.cpp:291
#14 0x00007f2c672e1481 in TaskManager::getServicesViaPid (pid=0) at /home/kde/src/kde-workspace/libs/taskmanager/taskitem.cpp:433
#15 0x00007f2c672e32ca in TaskManager::TaskItem::launcherUrl (this=0x38c1c80) at /home/kde/src/kde-workspace/libs/taskmanager/taskitem.cpp:612
#16 0x00007f2c672e07b2 in TaskManager::TaskItem::taskName (this=0x38c1c80) at /home/kde/src/kde-workspace/libs/taskmanager/taskitem.cpp:196
#17 0x00007f2c672c9bc9 in TaskManager::AlphaSortingStrategy::sortItems (this=0x28b9ac0, items=...) at /home/kde/src/kde-workspace/libs/taskmanager/strategies/alphasortingstrategy.cpp:89
#18 0x00007f2c672b7c1a in TaskManager::AbstractSortingStrategy::check (this=0x28b9ac0, itemToCheck=0x38c1c80) at /home/kde/src/kde-workspace/libs/taskmanager/abstractsortingstrategy.cpp:145
#19 0x00007f2c672b7a54 in TaskManager::AbstractSortingStrategy::handleItem (this=0x28b9ac0, item=0x38c1c80) at /home/kde/src/kde-workspace/libs/taskmanager/abstractsortingstrategy.cpp:115
#20 0x00007f2c672b7efb in TaskManager::AbstractSortingStrategy::qt_static_metacall (_o=0x28b9ac0, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7fff0c2c30d0) at /home/kde/src/superbuild/kdebase/build/Build/kde-workspace/libs/taskmanager/abstractsortingstrategy.moc:55
#21 0x00007f2c859d75fa in QMetaObject::activate (sender=0x28bd590, m=0x7f2c67517280, local_signal_index=1, argv=0x7fff0c2c30d0) at kernel/qobject.cpp:3546
#22 0x00007f2c672df1ef in TaskManager::TaskGroup::itemAdded (this=0x28bd590, _t1=0x38c1c80) at /home/kde/src/superbuild/kdebase/build/Build/kde-workspace/libs/taskmanager/taskgroup.moc:187
#23 0x00007f2c672dc8a0 in TaskManager::TaskGroup::add (this=0x28bd590, item=0x38c1c80, insertIndex=-1) at /home/kde/src/kde-workspace/libs/taskmanager/taskgroup.cpp:250
#24 0x00007f2c672ce28e in TaskManager::ManualGroupingStrategy::handleItem (this=0x28b98d0, item=0x38c1c80) at /home/kde/src/kde-workspace/libs/taskmanager/strategies/manualgroupingstrategy.cpp:125
#25 0x00007f2c672b93cc in TaskManager::GroupManagerPrivate::addTask (this=0x28aab40, task=...) at /home/kde/src/kde-workspace/libs/taskmanager/groupmanager.cpp:349
#26 0x00007f2c672beb77 in TaskManager::GroupManager::qt_static_metacall (_o=0x28aa9b0, _c=QMetaObject::InvokeMetaMethod, _id=10, _a=0x7fff0c2c34e0) at /home/kde/src/superbuild/kdebase/build/Build/kde-workspace/libs/taskmanager/groupmanager.moc:90
#27 0x00007f2c859d75fa in QMetaObject::activate (sender=0x28aa6f0, m=0x7f2c67517640, local_signal_index=0, argv=0x7fff0c2c34e0) at kernel/qobject.cpp:3546
#28 0x00007f2c672e7649 in TaskManager::TaskManager::taskAdded (this=0x28aa6f0, _t1=...) at /home/kde/src/superbuild/kdebase/build/Build/kde-workspace/libs/taskmanager/taskmanager.moc:188
#29 0x00007f2c672e613d in TaskManager::TaskManager::windowAdded (this=0x28aa6f0, w=96469055) at /home/kde/src/kde-workspace/libs/taskmanager/taskmanager.cpp:292
#30 0x00007f2c672e7273 in TaskManager::TaskManager::qt_static_metacall (_o=0x28aa6f0, _c=QMetaObject::InvokeMetaMethod, _id=7, _a=0x7fff0c2c37a0) at /home/kde/src/superbuild/kdebase/build/Build/kde-workspace/libs/taskmanager/taskmanager.moc:103
#31 0x00007f2c859d75fa in QMetaObject::activate (sender=0x1ae8dc0, m=0x7f2c8706d7c0, local_signal_index=1, argv=0x7fff0c2c37a0) at kernel/qobject.cpp:3546
#32 0x00007f2c86cef679 in KWindowSystem::windowAdded (this=0x1ae8dc0, _t1=96469055) at /home/kde/build/kdelibs/kdeui/kwindowsystem.moc:143
#33 0x00007f2c86ceb568 in KWindowSystemPrivate::addClient (this=0x1b482e0, w=96469055) at /home/kde/work/kdelibs/kdeui/windowmanagement/kwindowsystem_x11.cpp:269
#34 0x00007f2c86cf889c in NETRootInfo::update (this=0x1b48308, dirty_props=0x7fff0c2c3ae0) at /home/kde/work/kdelibs/kdeui/windowmanagement/netwm.cpp:2227
#35 0x00007f2c86cf8141 in NETRootInfo::event (this=0x1b48308, event=0x7fff0c2c3df0, properties=0x7fff0c2c3b90, properties_size=5) at /home/kde/work/kdelibs/kdeui/windowmanagement/netwm.cpp:2099
#36 0x00007f2c86cead63 in KWindowSystemPrivate::x11Event (this=0x1b482e0, ev=0x7fff0c2c3df0) at /home/kde/work/kdelibs/kdeui/windowmanagement/kwindowsystem_x11.cpp:172
#37 0x00007f2c86b8da4a in KEventHackWidget::publicX11Event (this=0x1b482e0, e=0x7fff0c2c3df0) at /home/kde/work/kdelibs/kdeui/kernel/ksystemeventfilter.cpp:43
#38 0x00007f2c86b8d6bc in KSystemEventFilterPrivate::filterEvent (this=0x1b44690, message=0x7fff0c2c3df0) at /home/kde/work/kdelibs/kdeui/kernel/ksystemeventfilter.cpp:102
#39 0x00007f2c86b8d629 in _k_eventFilter (message=0x7fff0c2c3df0) at /home/kde/work/kdelibs/kdeui/kernel/ksystemeventfilter.cpp:91
#40 0x00007f2c859a83a0 in QAbstractEventDispatcher::filterEvent (this=0x1a22bd0, message=0x7fff0c2c3df0) at kernel/qabstracteventdispatcher.cpp:536
#41 0x00007f2c848e4001 in x11EventSourceDispatch (s=0x1a258f0, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:143
#42 0x00007f2c7fd897fd in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#43 0x00007f2c7fd89ff8 in ?? () from /usr/lib/libglib-2.0.so.0
#44 0x00007f2c7fd8a1c9 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#45 0x00007f2c859f54b3 in QEventDispatcherGlib::processEvents (this=0x1a22bd0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#46 0x00007f2c848e43bc in QGuiEventDispatcherGlib::processEvents (this=0x1a22bd0, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#47 0x00007f2c859b6c3c in QEventLoop::processEvents (this=0x7fff0c2c4180, flags=...) at kernel/qeventloop.cpp:149
#48 0x00007f2c859b6dc6 in QEventLoop::exec (this=0x7fff0c2c4180, flags=...) at kernel/qeventloop.cpp:204
#49 0x00007f2c859b99f2 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1148
#50 0x00007f2c8480a7c4 in QApplication::exec () at kernel/qapplication.cpp:3779
#51 0x00007f2c6f661222 in kdemain (argc=1, argv=0x199e8e0) at /home/kde/src/kde-workspace/plasma/desktop/shell/main.cpp:120
#52 0x0000000000407373 in launch (argc=1, _name=0x19ab8f8 "/home/kde/bin/plasma-desktop", args=0x19ab915 "", cwd=0x0, envc=0, envs=0x19ab91d "", reset_env=false, tty=0x0, avoid_loops=false, startup_id_str=0x40d80f "0") at /home/kde/work/kdelibs/kinit/kinit.cpp:734
#53 0x0000000000408481 in handle_launcher_request (sock=8, who=0x40daac "launcher") at /home/kde/work/kdelibs/kinit/kinit.cpp:1226
#54 0x0000000000408d34 in handle_requests (waitForPid=0) at /home/kde/work/kdelibs/kinit/kinit.cpp:1419
#55 0x000000000040a803 in main (argc=4, argv=0x7fff0c2c5028, envp=0x7fff0c2c5050) at /home/kde/work/kdelibs/kinit/kinit.cpp:1907


Diffs
-----

  libs/taskmanager/taskitem.cpp d3c336d 

Diff: http://git.reviewboard.kde.org/r/103085/diff/diff


Testing
-------

This one is not easy to reproduce.


Thanks,

Valentin Rusu

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20111108/3c1369f0/attachment.htm>


More information about the kde-core-devel mailing list