Summary: | Plasma desktop crashed while using Thunderbird | ||
---|---|---|---|
Product: | [Unmaintained] plasma4 | Reporter: | morley_steve |
Component: | widget-pager | Assignee: | Plasma Bugs List <plasma-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | aseigo, cfeck, l.lunak, laidig |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
morley_steve
2010-09-13 18:36:37 UTC
SVN commit 1175028 by aseigo: remove an unused bit of bookkeeping; seems to cause a crash on some systems due to an XIO error (though i'd expect NETWinInfo to protect against such things? hm..) BUG:251131 M +0 -25 pager.cpp M +0 -1 pager.h WebSVN link: http://websvn.kde.org/?view=rev&revision=1175028 SVN commit 1175029 by aseigo: remove an unused bit of bookkeeping; seems to cause a crash on some systems due to an XIO error (though i'd expect NETWinInfo to protect against such things? hm..) BUG:251131 M +0 -25 pager.cpp M +0 -1 pager.h WebSVN link: http://websvn.kde.org/?view=rev&revision=1175029 Looks like NET/KWindowInfo stuff does not handle the reentrancy visible in the backtrace, similar to bug 170519. Adding Lubos for some inspection. XIO error usually means - the X server disconnected - threading problems Lubos, I wasn't talking about the XIO error, but about the reentrancy problem. If you look at the backtrace, you see that NETRootInfo::update() emits KWindowSystem::windowRemoved() which in turn activates Pager::windowRemoved() that ultimatively calls into KWindowSystem::windowInfo() which calls NETWinInfo::update() an causes a crash. (note NETWinInfo != NETRootInfo, which could be the reason why it was not fixed by r1000474, which only handled reentrancy inside NETRootInfo alone). There is no reentrancy, NETRootInfo::update() != NETWinInfo::update(). What I said above still stands, even if there was reentrancy. SVN commit 1175732 by aseigo: remove the access to kwininfo, that's the important bit, actually CCBUG:251131 M +0 -4 pager.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1175732 SVN commit 1175733 by aseigo: remove the access to kwininfo, that's the important bit, actually CCBUG:251131 M +0 -4 pager.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1175733 the issue in this particular case is that it was (unnecessarily, it turns out) asking for the window information on a window that no longer existed. this is apparently what triggered the problem. it was asking for a KWinInfo using the WId passed into a slot from the WindowSystem::windowRemoved(WId) signal. there is no reentrancy in this case (it's all in the gui thread and with no recursive calls) and the x server seems to still have been connected to plasma-desktop. No, that's not the important bit, either. Once more: X IO errors are only caused by problems with the X connection, either the connection going away, or getting corrupted. The first one is caused by (remote) connection problem or X going away/crashing, the second is a corruption of the data, usually caused by threading problems when accessing the X connection. This commit at most removes the place where the X problem showed up, but presumably the X IO error then would show up somewhere else later if exactly the same happens again. Accessing a non-existing window generates a non-IO X error, which is handled by the library. odd question for the people reporting this bug: are you using an SVG wallpaper? No, the wallpapers are jpgs - probably should've noted that I'm dual screen using twinview. |