Summary: | plasma-desktop crashes on computer shutdown | ||
---|---|---|---|
Product: | [Unmaintained] plasma4 | Reporter: | Hussam Al-Tayeb <ht990332> |
Component: | general | Assignee: | Plasma Bugs List <plasma-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | alinm.elena, arthur, aseigo, asraniel, cfeck, daniel, fabo, hrvoje.senjan, ht990332, kevin.kofler, nucleo, rco, rdieter, scarpino, stuffcorpse, tittiatcoke, valir |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
Hotfix
New crash information added by DrKonqi |
Description
Hussam Al-Tayeb
2011-10-26 08:10:50 UTC
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. |