Application: plasma-desktop (0.4) KDE Platform Version: 4.7.2 (4.7.2) (Compiled from sources) Qt Version: 4.8.0 Operating System: Linux 3.1.0-1-ARCH i686 Distribution (Platform): Archlinux Packages -- Information about the crash: - What I was doing when the application crashed: I was logging off kde and shutting down my computer and plasma-desktop crashed. The crash can be reproduced some of the time. -- Backtrace: Application: Plasma Desktop Shell (plasma-desktop), signal: Segmentation fault [Current thread is 1 (Thread 0xafbfd960 (LWP 22066))] Thread 2 (Thread 0xa7b88b70 (LWP 22067)): #0 0xb273fd00 in clock_gettime () from /lib/librt.so.1 #1 0xb622c0f5 in do_gettime (frac=0xa7b87f30, sec=0xa7b87f28) at tools/qelapsedtimer_unix.cpp:123 #2 qt_gettime () at tools/qelapsedtimer_unix.cpp:140 #3 0xb6320776 in QTimerInfoList::updateCurrentTime (this=0xa7201a74) at kernel/qeventdispatcher_unix.cpp:343 #4 0xb6320b4a in QTimerInfoList::timerWait (this=0xa7201a74, tm=...) at kernel/qeventdispatcher_unix.cpp:450 #5 0xb631ef83 in timerSourcePrepareHelper (src=<optimized out>, timeout=0xa7b8803c) at kernel/qeventdispatcher_glib.cpp:136 #6 0xb631f01d in timerSourcePrepare (source=0xa7201a40, timeout=<optimized out>) at kernel/qeventdispatcher_glib.cpp:169 #7 0xb26865dc in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0 #8 0xb2687387 in ?? () from /usr/lib/libglib-2.0.so.0 #9 0xb268797a in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #10 0xb631fb97 in QEventDispatcherGlib::processEvents (this=0x92a6188, flags=...) at kernel/qeventdispatcher_glib.cpp:426 #11 0xb62e785d in QEventLoop::processEvents (this=0xa7b881c0, flags=...) at kernel/qeventloop.cpp:149 #12 0xb62e7af9 in QEventLoop::exec (this=0xa7b881c0, flags=...) at kernel/qeventloop.cpp:204 #13 0xb61c3c6d in QThread::exec (this=0x92a7410) at thread/qthread.cpp:501 #14 0xb62c2663 in QInotifyFileSystemWatcherEngine::run (this=0x92a7410) at io/qfilesystemwatcher_inotify.cpp:248 #15 0xb61c6fba in QThreadPrivate::start (arg=0x92a7410) at thread/qthread_unix.cpp:298 #16 0xb1bf570c in ?? () from /usr/lib/libGL.so.1 #17 0x00000000 in ?? () Thread 1 (Thread 0xafbfd960 (LWP 22066)): [KCrash Handler] #7 0x00000000 in ?? () #8 0xb73543b6 in qDeleteAll<QList<Plasma::Applet*>::const_iterator> (begin=..., end=...) at /usr/include/QtCore/qalgorithms.h:322 #9 0xb7354c15 in qDeleteAll<QList<Plasma::Applet*> > (c=...) at /usr/include/QtCore/qalgorithms.h:330 #10 0xb7357e91 in Plasma::ContainmentPrivate::~ContainmentPrivate (this=0x8f7e908, __in_chrg=<optimized out>) at /home/hussam/packages/kdelibs/src/kdelibs/plasma/private/containment_p.h:70 #11 0xb734f285 in Plasma::Containment::~Containment (this=0x8f89810, __in_chrg=<optimized out>) at /home/hussam/packages/kdelibs/src/kdelibs/plasma/containment.cpp:148 #12 0xad3c4a95 in Panel::~Panel (this=0x8f89810, __in_chrg=<optimized out>) at /home/hussam/packages/kdebase-workspace/src/kde-workspace/plasma/desktop/containments/panel/panel.cpp:127 #13 0xad3c4ae2 in Panel::~Panel (this=0x8f89810, __in_chrg=<optimized out>) at /home/hussam/packages/kdebase-workspace/src/kde-workspace/plasma/desktop/containments/panel/panel.cpp:129 #14 0xb73628a6 in qDeleteAll<QList<Plasma::Containment*>::const_iterator> (begin=..., end=...) at /usr/include/QtCore/qalgorithms.h:322 #15 0xb7362b25 in qDeleteAll<QList<Plasma::Containment*> > (c=...) at /usr/include/QtCore/qalgorithms.h:330 #16 0xb735f490 in Plasma::CoronaPrivate::~CoronaPrivate (this=0x8ea9890, __in_chrg=<optimized out>) at /home/hussam/packages/kdelibs/src/kdelibs/plasma/corona.cpp:805 #17 0xb735f5ac in Plasma::Corona::~Corona (this=0x8ea5188, __in_chrg=<optimized out>) at /home/hussam/packages/kdelibs/src/kdelibs/plasma/corona.cpp:82 #18 0xb777f184 in DesktopCorona::~DesktopCorona (this=0x8ea5188, __in_chrg=<optimized out>) at /home/hussam/packages/kdebase-workspace/src/kde-workspace/plasma/desktop/shell/desktopcorona.cpp:70 #19 0xb777f1b2 in DesktopCorona::~DesktopCorona (this=0x8ea5188, __in_chrg=<optimized out>) at /home/hussam/packages/kdebase-workspace/src/kde-workspace/plasma/desktop/shell/desktopcorona.cpp:73 #20 0xb77a694e in PlasmaApp::cleanup (this=0x8cc95c8) at /home/hussam/packages/kdebase-workspace/src/kde-workspace/plasma/desktop/shell/plasmaapp.cpp:381 #21 0xb77aa7cd in PlasmaApp::qt_static_metacall (_o=0x8cc95c8, _c=QMetaObject::InvokeMetaMethod, _id=15, _a=0xbfe76d70) at /home/hussam/packages/kdebase-workspace/src/build/plasma/desktop/shell/plasmaapp.moc:120 #22 0xb6301449 in QMetaObject::activate (sender=0x8cc95c8, m=0xb6454380, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3546 #23 0xb635b145 in QCoreApplication::aboutToQuit (this=0x8cc95c8) at .moc/debug-shared/moc_qcoreapplication.cpp:145 #24 0xb62ed798 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1153 #25 0xb56d9854 in QApplication::exec () at kernel/qapplication.cpp:3779 #26 0xb778d311 in kdemain (argc=1, argv=0xbfe76ff4) at /home/hussam/packages/kdebase-workspace/src/kde-workspace/plasma/desktop/shell/main.cpp:120 #27 0x0804852b in main (argc=1, argv=0xbfe76ff4) at /home/hussam/packages/kdebase-workspace/src/build/plasma/desktop/shell/plasma-desktop_dummy.cpp:3 Possible duplicates by query: bug 282934, bug 259639, bug 258867. Reported using DrKonqi
This crash started happening after rebuilding, kdelibs, kde-workspace, kde-runtime, etc.. under QT 4.8.0rc1.
I am seeing multiple applications crashing on exit in qDeleteAll (Kontact, Plasma, Okular) with Qt 4.8, so I am pretty sure it is a Qt issue.
*** Bug 282934 has been marked as a duplicate of this bug. ***
(In reply to comment #2) > I am seeing multiple applications crashing on exit in qDeleteAll (Kontact, > Plasma, Okular) with Qt 4.8, so I am pretty sure it is a Qt issue. Any upsteam Qt bug report about this? where do I file one?
I meant to type upstream* ...sorry for the spam.
The address to report Qt bugs would be https://bugreports.qt.nokia.com/secure/Dashboard.jspa Be prepared to have a minimal test case that reproduces the crash at hand :/
*** Bug 283620 has been marked as a duplicate of this bug. ***
Qt (upstream) bug, https://bugreports.qt.nokia.com/browse/QTBUG-22037
looks like it is not a Qt bug. https://bugreports.qt.nokia.com/browse/QTBUG-22037?focusedCommentId=166816&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-166816 says "this change is known to reveal bugs in the usage of qlist; several places in qt itself had to be fixed as well."
Yep, I already found the place to fix for Kontact, now lets find the other culprits (I probably should add KWin to comment #2 ...)
Created attachment 65222 [details] Hotfix This fixes the crash for me, but it is only a workaround. Somewhere, the applet list gets modified while the applets are deleted.
Created attachment 65336 [details] New crash information added by DrKonqi plasma-desktop (0.4) on KDE Platform 4.7.3 (4.7.3) using Qt 4.8.0 - What I was doing when the application crashed: Shutdown via the graphical interface - Custom settings of the application: Applets: knetworkmanager, printing -- Backtrace (Reduced): #7 0x00007f57263fe1ef in Plasma::Containment::~Containment() () from /usr/lib/libplasma.so.3 [...] #10 0x00007f5726411524 in Plasma::Corona::~Corona() () from /usr/lib/libplasma.so.3 [...] #15 0x00007f572fbc3305 in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4 #16 0x00007f571dabb173 in kdemain () from /usr/lib/libkdeinit4_plasma-desktop.so #17 0x00000000004082f4 in _start ()
Cristoph, i can confirm your patch works for me also. 4.7.3 built against qt 4.8
could you post a proper patch on: https://git.reviewboard.kde.org here those patches usually get lost
Git commit f02884d36bc6ff4db4453b43d088c7226acfdf6e by Ben Cooksley. Committed on 22/11/2011 at 09:14. Pushed by bcooksley into branch 'KDE/4.7'. Don't crash on exit. BUG:284989 REVIEW:103202 M +5 -1 plasma/private/containment_p.h http://commits.kde.org/kdelibs/f02884d36bc6ff4db4453b43d088c7226acfdf6e
These "fixes" which replace qDeleteAll by a manual loop are most definitely only workarounds. There are 3 possibilities: (a) Qt is broken. But ossi says the code is not broken, and not having found any fault after proofreading it at least 3 times, I tend to believe him unless proven otherwise. If Qt is broken, this needs to get fixed in Qt. (b) Qt is getting miscompiled by g++. So far, no evidence of this, but it is a possibility that shouldn't be ignored, and it tends to be hard to figure out that kind of stuff. If that's the case, this needs to get fixed in g++. (c) The list is somehow already in an invalid state when qDeleteAll is called. If that's the case, the code which puts it into that invalid state needs to get fixed. Either way, the "fix" is not the real fix, and closing the bug is deceptive and misleading.