Version: (using Devel) Installed from: Compiled sources OS: Linux To reproduce: 1) issue the command $ kquitapp plasma What follows is the valgrind trace of the crash ==7891== Invalid read of size 4 ==7891== at 0x4F808F6: XFreePixmap (in /usr/lib/libX11.so.6.2.0) ==7891== by 0xC2E770B: TaskManager::Task::~Task() (task.cpp:124) ==7891== by 0xC2E83C7: KSharedPtr<TaskManager::Task>::~KSharedPtr() (ksharedptr.h:78) ==7891== by 0xC2EF281: QMap<unsigned long, KSharedPtr<TaskManager::Task> >::freeData(QMapData*) (qmap.h:593) ==7891== by 0xC2EF567: QMap<unsigned long, KSharedPtr<TaskManager::Task> >::~QMap() (qmap.h:153) ==7891== by 0xC2EF5A9: TaskManager::TaskManager::Private::~Private() (taskmanager.cpp:51) ==7891== by 0xC2EDF33: TaskManager::TaskManager::~TaskManager() (taskmanager.cpp:101) ==7891== by 0xC2F02DC: TaskManager::TaskManagerSingleton::~TaskManagerSingleton() (taskmanager.cpp:38) ==7891== by 0xC2EDFBE: TaskManager::._239::destroy() (taskmanager.cpp:43) ==7891== by 0xC2EE70E: KCleanUpGlobalStatic::~KCleanUpGlobalStatic() (kglobal.h:65) ==7891== by 0xC2EC19B: __tcf_0 (taskmanager.cpp:43) ==7891== by 0x5AD4593: exit (in /lib/tls/i686/cmov/libc-2.6.1.so) And this is the gdb backtrace: #6 0xb6fc88f6 in XFreePixmap () from /usr/lib/libX11.so.6 #7 0xb28bb70c in ~Task (this=0x8328250) at /home/hawk/stanzino/kde/src/4/KDE/kdebase/workspace/libs/taskmanager/task.cpp:124 #8 0xb28bc3c8 in ~KSharedPtr (this=0x8389330) at /media/sdb6/kde4_install/kde4/include/ksharedptr.h:78 #9 0xb28c35b5 in ~Private (this=0x8389330) at /home/hawk/stanzino/kde/src/4/KDE/kdebase/workspace/libs/taskmanager/taskmanager.cpp:51 #10 0xb28c1f34 in ~TaskManager (this=0x8327d00) at /home/hawk/stanzino/kde/src/4/KDE/kdebase/workspace/libs/taskmanager/taskmanager.cpp:101 #11 0xb28c42dd in ~TaskManagerSingleton (this=0x8327d00) at /home/hawk/stanzino/kde/src/4/KDE/kdebase/workspace/libs/taskmanager/taskmanager.cpp:38 #12 0xb28c1fbf in destroy () at /home/hawk/stanzino/kde/src/4/KDE/kdebase/workspace/libs/taskmanager/taskmanager.cpp:43 #13 0xb28c270f in ~KCleanUpGlobalStatic (this=0xb28c6a50) at /media/sdb6/kde4_install/kde4/include/KDE/../kglobal.h:65 #14 0xb28c019c in __tcf_0 () at /home/hawk/stanzino/kde/src/4/KDE/kdebase/workspace/libs/taskmanager/taskmanager.cpp:43 #15 0xb6437594 in exit () from /lib/tls/i686/cmov/libc.so.6 #16 0xb6420058 in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6 #17 0x08048751 in _start () #0 0xffffe410 in __kernel_vsyscall () Where does the windowPixmap in Task:Private becomes a not NULL invalid value? Just above that error there are these other 2 (don't know if they are related or not to this bug): plasma(7891) SystemTrayContainer::SystemTrayContainer: attempting to embed 62914583 plasma(7891) SystemTrayContainer::SystemTrayContainer: attempting to embed 67108875 ==7891== ==7891== Syscall param write(buf) points to uninitialised byte(s) ==7891== at 0x40007F2: (within /lib/ld-2.6.1.so) ==7891== by 0x4FA767E: _X11TransWrite (in /usr/lib/libX11.so.6.2.0) ==7891== by 0x4F9F4D6: (within /usr/lib/libX11.so.6.2.0) ==7891== by 0x4F793BA: XCheckTypedWindowEvent (in /usr/lib/libX11.so.6.2.0) ==7891== by 0x52FFDC1: QApplication::x11ProcessEvent(_XEvent*) (qapplication_x11.cpp:3350) ==7891== by 0x532E0F4: x11EventSourceDispatch(_GSource*, int (*)(void*), void*) (qguieventdispatcher_glib.cpp:148) ==7891== by 0x5E1E11B: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.1400.1) ==7891== by 0x5E2155E: (within /usr/lib/libglib-2.0.so.0.1400.1) ==7891== by 0x5E21AC4: g_main_context_iteration (in /usr/lib/libglib-2.0.so.0.1400.1) ==7891== by 0x4BF0E33: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:325) ==7891== by 0x532D91F: QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qguieventdispatcher_glib.cpp:204) ==7891== by 0x4BBFA5D: QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:146) ==7891== Address 0x69bb9f6 is 14 bytes inside a block of size 16,384 alloc'd ==7891== at 0x4021BDE: calloc (vg_replace_malloc.c:397) ==7891== by 0x4F8D326: XOpenDisplay (in /usr/lib/libX11.so.6.2.0) ==7891== by 0x40319E5: checkComposite() (plasmaapp.cpp:72) ==7891== by 0x4031D23: PlasmaApp::self() (plasmaapp.cpp:108) ==7891== by 0x4030308: kdemain (main.cpp:51) ==7891== by 0x80487D5: main (plasma-qgv_dummy.cpp:3) plasma(7891) RssEngine::processRss: not all caches up to date, delaying update. plasma(7891) RssEngine::processRss: not all caches up to date, delaying update. plasma(7891) RssEngine::processRss: all caches up to date, updating... plasma(7891) RssEngine::processRss: all caches up to date, updating... ==7891== ==7891== Syscall param write(buf) points to uninitialised byte(s) ==7891== at 0x40007F2: (within /lib/ld-2.6.1.so) ==7891== by 0x4FA767E: _X11TransWrite (in /usr/lib/libX11.so.6.2.0) ==7891== by 0x4F9F4D6: (within /usr/lib/libX11.so.6.2.0) ==7891== by 0x4F7E890: XFlush (in /usr/lib/libX11.so.6.2.0) ==7891== by 0x531BCE5: QWidgetPrivate::hide_sys() (qwidget_x11.cpp:1973) ==7891== by 0x52E2904: QWidgetPrivate::hide_helper() (qwidget.cpp:6163) ==7891== by 0x52E9C75: QWidget::setVisible(bool) (qwidget.cpp:6325) ==7891== by 0x52CBE67: QWidget::hide() (qwidget.h:474) ==7891== by 0x52E09C9: QWidget::~QWidget() (qwidget.cpp:1292) ==7891== by 0x4033528: RootWidget::~RootWidget() (rootwidget.cpp:102) ==7891== by 0x4030D92: PlasmaApp::cleanup() (plasmaapp.cpp:227) ==7891== by 0x4030E9A: PlasmaApp::qt_metacall(QMetaObject::Call, int, void**) (plasmaapp.moc:78) ==7891== Address 0x69bb9fd is 21 bytes inside a block of size 16,384 alloc'd ==7891== at 0x4021BDE: calloc (vg_replace_malloc.c:397) ==7891== by 0x4F8D326: XOpenDisplay (in /usr/lib/libX11.so.6.2.0) ==7891== by 0x40319E5: checkComposite() (plasmaapp.cpp:72) ==7891== by 0x4031D23: PlasmaApp::self() (plasmaapp.cpp:108) ==7891== by 0x4030308: kdemain (main.cpp:51) ==7891== by 0x80487D5: main (plasma-qgv_dummy.cpp:3) BTW: running plasma into vlagrind shows many problems (trash for example) some of which in Qt. Are all of them false positive? (I know it is off topic here. Well... it has a high probability of being off-topic ;-) )
this bug is slowly driving me insane. a few weird things: *if you remove the taskbar, then quit a minute later, the crash still happens on quit. *if you don't have any taskbar at all, it still crashes sometimes. can't reproduce this... it crashed once with no backtrace (the debug output *said* it was crashing) and now it's behaving.
I have tried it too with KDE 4.0.3 with OpenSuse 10.3 and no error. Plasma is closed, while the app is still working. No traceback. Qt 4.3.4.
Version: Devel trunk 4.0.70 Installed from: Compiled sources build: 19/04/2008 OS: Linux Distro: Debian QT version: qt-copy 4.4.0 RC1 build: 19/04/2008 Bug not reproducible
Is this bug reproducible yet?
Fixed. All you KDE developers (expecially plasma ones (expecially Aaron)) really rock!