Bug 156424 - Random plasma crash (dynamic_cast gone wong?)
Summary: Random plasma crash (dynamic_cast gone wong?)
Status: RESOLVED FIXED
Alias: None
Product: plasma4
Classification: Plasma
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-01-23 01:03 UTC by Oliver Putz
Modified: 2008-01-23 03:29 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Oliver Putz 2008-01-23 01:03:33 UTC
Version:            (using Devel)
Installed from:    Compiled sources
Compiler:          Tasks::addWindowTask 
OS:                Linux

Today plasma (randomly?) crashed with the backtrace below. I think the crash occurred while creating a backtrace for another crash.

Using host libthread_db library "/lib/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread 0xb62b66e0 (LWP 9516)]
[New Thread 0xb4b7fb90 (LWP 9518)]
[KCrash handler]
#6  0xb674164f in __dynamic_cast ()
   from /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libstdc++.so.6
#7  0xb000c691 in Tasks::addWindowTask (this=0x814c990, task=@0xbfcae6c8)
    at /var/tmp/portage/kde-base/kdebase-9999.4/work/kdebase-9999.4/workspace/plasma/applets/tasks/tasks.cpp:173
#8  0xb000c8e0 in Tasks::registerWindowTasks (this=0x814c990)
    at /var/tmp/portage/kde-base/kdebase-9999.4/work/kdebase-9999.4/workspace/plasma/applets/tasks/tasks.cpp:140
#9  0xb000c9a4 in Tasks::currentDesktopChanged (this=0x814c990)
    at /var/tmp/portage/kde-base/kdebase-9999.4/work/kdebase-9999.4/workspace/plasma/applets/tasks/tasks.cpp:226
#10 0xb000d66c in Tasks::qt_metacall (this=0x814c990, 
    _c=QMetaObject::InvokeMetaMethod, _id=26, _a=0xbfcaec0c)
    at /var/tmp/portage/kde-base/kdebase-9999.4/work/kdebase_build/workspace/plasma/applets/tasks/tasks.moc:85
#11 0xb74271f4 in QMetaObject::activate (sender=0x815cd90, 
    from_signal_index=8, to_signal_index=8, argv=<value optimized out>)
    at kernel/qobject.cpp:3081
#12 0xb7427d94 in QMetaObject::activate (sender=0x815cd90, m=0xaffe4d68, 
    local_signal_index=4, argv=0xbfcaec0c) at kernel/qobject.cpp:3140
#13 0xaffdf164 in TaskManager::TaskManager::desktopChanged (this=0x815cd90, 
    _t1=3)
    at /var/tmp/portage/kde-base/kdebase-9999.4/work/kdebase_build/workspace/libs/taskmanager/taskmanager.moc:176
#14 0xaffdf194 in TaskManager::TaskManager::currentDesktopChanged (
    this=0x815cd90, desktop=3)
    at /var/tmp/portage/kde-base/kdebase-9999.4/work/kdebase-9999.4/workspace/libs/taskmanager/taskmanager.cpp:407
#15 0xaffe1756 in TaskManager::TaskManager::qt_metacall (this=0x815cd90, 
    _c=QMetaObject::InvokeMetaMethod, _id=15, _a=0xbfcaf15c)
    at /var/tmp/portage/kde-base/kdebase-9999.4/work/kdebase_build/workspace/libs/taskmanager/taskmanager.moc:109
#16 0xb74271f4 in QMetaObject::activate (sender=0x81004c0, 
    from_signal_index=4, to_signal_index=4, argv=<value optimized out>)
    at kernel/qobject.cpp:3081
#17 0xb7427d94 in QMetaObject::activate (sender=0x81004c0, m=0xb7b241a4, 
    local_signal_index=0, argv=0xbfcaf15c) at kernel/qobject.cpp:3140
#18 0xb7ad1091 in KWindowSystem::currentDesktopChanged (this=0x81004c0, _t1=3)
    at /var/tmp/portage/kde-base/kdelibs-9999.4/work/kdelibs_build/kdeui/kwindowsystem.moc:110
#19 0xb7ad3fb7 in KWindowSystemPrivate::x11Event (this=0x8137728, 
    ev=0xbfcaf568)
    at /var/tmp/portage/kde-base/kdelibs-9999.4/work/kdelibs-9999.4/kdeui/windowmanagement/kwindowsystem_x11.cpp:129
#20 0xb79cf1cb in KAppX11HackWidget::publicx11Event (this=0x8137728, 
    e=0xbfcaf568)
    at /var/tmp/portage/kde-base/kdelibs-9999.4/work/kdelibs-9999.4/kdeui/kernel/kapplication.cpp:921
#21 0xb79cc15d in KApplication::x11EventFilter (this=0x8055e10, 
    _event=0xbfcaf568)
    at /var/tmp/portage/kde-base/kdelibs-9999.4/work/kdelibs-9999.4/kdeui/kernel/kapplication.cpp:971
#22 0xb6b0ba2e in qt_x11EventFilter (ev=0xbfcaf568)
    at kernel/qapplication_x11.cpp:341
#23 0xb6b18a67 in QApplication::x11ProcessEvent (this=0x8055e10, 
    event=0xbfcaf568) at kernel/qapplication_x11.cpp:2793
#24 0xb6b3ec45 in QEventDispatcherX11::processEvents (this=0x805fb80, 
    flags=@0xbfcaf654) at kernel/qeventdispatcher_x11.cpp:125
#25 0xb7413191 in QEventLoop::processEvents (this=0xbfcaf6c0, 
    flags=@0xbfcaf688) at kernel/qeventloop.cpp:140
#26 0xb741329a in QEventLoop::exec (this=0xbfcaf6c0, flags=@0xbfcaf6c8)
    at kernel/qeventloop.cpp:186
#27 0xb7415626 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:759
#28 0xb6ab4487 in QApplication::exec () at kernel/qapplication.cpp:3053
#29 0xb7f74ed4 in kdemain (argc=1, argv=0xbfcaf894)
    at /var/tmp/portage/kde-base/kdebase-9999.4/work/kdebase-9999.4/workspace/plasma/plasma/main.cpp:54
#30 0x080487e2 in main (argc=137571336, argv=0x1)
    at /var/tmp/portage/kde-base/kdebase-9999.4/work/kdebase_build/workspace/plasma/plasma/plasma-qgv_dummy.cpp:3
#31 0xb653efdc in __libc_start_main (main=0x80487c0 <main>, argc=1, 
    ubp_av=0xbfcaf894, init=0x8048810 <__libc_csu_init>, 
    fini=0x8048800 <__libc_csu_fini>, rtld_fini=0xb7f8d100 <_dl_fini>, 
    stack_end=0xbfcaf88c) at libc-start.c:229
#32 0x08048731 in _start ()
#0  0xffffe410 in __kernel_vsyscall ()
Comment 1 Aaron J. Seigo 2008-01-23 01:16:10 UTC
which sources did you compile exactly?
Comment 2 Oliver Putz 2008-01-23 01:20:27 UTC
Hi! I use the gentoo layman overlay to get the current KDE SVN version. I think I last compiled kdebase and kdelibs roughly two days ago.
Comment 3 Oliver Putz 2008-01-23 01:26:40 UTC
Ups, as I just see, I copied something wrong into the gcc version field. My gcc version is: gcc version 4.1.2 20070214.

P.S.: If you can tell me how I can find out the exact svn version I am running, I can tell you which version of the kdelibs / kdebase I exactly compiled.
Comment 4 Aaron J. Seigo 2008-01-23 01:35:15 UTC
checking About KDE can be helpful, though that's only for kdelibs. doing an `svn stat -v` on your sources will tell you where you are as well....
Comment 5 Oliver Putz 2008-01-23 02:00:38 UTC
Hi! Thanks first of all for the pointer! However, if fear I have bad news: Apparently I already deleted the sources in order to recompile other parts of KDE (have a very small hard drive in this laptop).
The version in About KDE is 4.00.80 (KDE 4.0.80 >= 20080104) [however, I think that might not be too useful either... :-/]
However, I can give you my merge logs:

I merged
- kdebase the last time at Sun Jan 20 14:44:35 2008
- kdelibs the last time at Sun Jan 20 12:01:39 2008
(both should be in Atlantic Standard time)

Hope that helps
Comment 6 Oliver Putz 2008-01-23 02:11:23 UTC
Ok, I just dug a little deeper into the merge logs, and considering the time the packet was installed and the time it took me to compile it, I should have checked out kdelibs/kdebase roughly at the following times:

kdelibs Sun Jan 20 14:47:44 2008 GMT
kdebase Sun Jan 20 17:44:34 2008 GMT
Comment 7 Oliver Putz 2008-01-23 03:04:18 UTC
So, after having played with the bug a little, I managed to find a way to reproduce it:

1) Go to some desktop
2) Start a program (via krunner)
3) Leave that desktop before the program pops up. (e.g. go from desktop 2 to desktop 3 *before* the program loads (and shows up in the miniview of the virtual desktops). Note that the program still starts on the desktop you launched it on, not the desktop you are on right now.
4) Go back to the desktop you launched the program on (in the example, go back from desktop 3 to desktop 2)
5) Leave that desktop again (e.g. go back from desktop 2 to desktop 3)
6) See Plasma crash
Comment 8 Aaron J. Seigo 2008-01-23 03:29:26 UTC
SVN commit 765059 by aseigo:

* removeAllTasks -> removeAllWindowTasks for clarity
* remove startup items from our collection so we don't crash later
* a bit more safety by taking the items out of the collection first, then removing them from the UI

BUG:156424


 M  +7 -6      tasks.cpp  
 M  +1 -1      tasks.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=765059