Summary: | kwin crash when executing ctrl-f11 to activate "Desktop Grid" effect (possibly multiscreen related) | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | smkr <steve.mckuhr> |
Component: | effects-various | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | Keywords: | drkonqi |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Fedora RPMs | ||
OS: | Linux | ||
Latest Commit: | http://commits.kde.org/kwin/57f8c6d5f88cfb05945d8a2837ed0cec3218e2f9 | Version Fixed In: | 5.4.2 |
Sentry Crash Report: |
Description
smkr
2015-08-24 21:10:31 UTC
How many screens do you have? bug #314409 bug #326032 (In reply to Thomas Lübking from comment #1) > How many screens do you have? I have 2 monitors and 8 virtual desktops. > bug #314409 That one appears to have been solved in 4.10.1. My Kwin is at: ~ $ rpm -q --changelog kwin | head * Tue Apr 28 2015 Rex Dieter <rdieter@fedoraproject.org> 4.11.18-3 - revert "-devel: drop dep on kwin-gles-libs (#1188877)" * Mon Apr 27 2015 Rex Dieter <rdieter@fedoraproject.org> 4.11.18-2 - -devel: Requires: kwin-libs (owner of libkdecorations.so symlink target) * Sun Apr 12 2015 Rex Dieter <rdieter@fedoraproject.org> 4.11.18-1 - 4.11.18 * Thu Mar 12 2015 Rex Dieter <rdieter@fedoraproject.org> 4.11.16-4 > bug #326032 Bug 326302 comment 7 says it was pushed to 4.11 branch but I can't find any reference in RedHat Bugzilla or package changelog. If there isn't any way to confirm that the fix made it in other than looking at sources I'll do that later on next week. Much appreciated the time you put into this Thomas. The patches are in your version, I just wanted to know whether there might be "yet another uncaught multiscreen out of bounds access" I think it is because PresentWindowsEffect::screenCountChanged() is shortcut for "if (!isActive())", but the desktopgrid doesn't call PresentWindowsEffect::setActive (or at least PresentWindowsEffect::screenCountChanged), so the effect can "miss" the increasing screen count change (it sees the signal, but ignores it) and when desktopgrid calls it, it assumes the m_gridSizes array is big enough (but it isn't) 1. effects are loaded, 1 screen present 2. 2nd screen gets added, but inactive effects ignore that 3. desktop grid gets activated, updates according to screen count, calls presentwindows for screen #2 4. presentwindows data is only prepared for one screen from step 1 => booom Git commit 57f8c6d5f88cfb05945d8a2837ed0cec3218e2f9 by Thomas Lübking. Committed on 14/09/2015 at 19:01. Pushed by luebking into branch 'Plasma/5.4'. recreate presentwindows grids from desktopgrid Theory: ---------- because PresentWindowsEffect::screenCountChanged() is shortcut for "if (!isActive())", but the desktopgrid doesn't call PresentWindowsEffect::setActive (or at least PresentWindowsEffect::screenCountChanged), so the effect can "miss" the increasing screen count change (it sees the signal, but ignores it) and when desktopgrid calls it, it assumes the m_gridSizes array is big enough (but it isn't) Steps: ---------- 1. effects are loaded, 1 screen present 2. 2nd screen gets added, but inactive effects ignore that 3. desktop grid gets activated, updates according to screen count, calls presentwindows for screen #2 4. presentwindows data is only prepared for one screen from step 1 => BOOM Related: bug 326032 FIXED-IN: 5.4.2 REVIEW: 124960 M +1 -0 effects/desktopgrid/desktopgrid.cpp M +8 -5 effects/presentwindows/presentwindows.cpp M +1 -1 effects/presentwindows/presentwindows.h M +5 -0 effects/presentwindows/presentwindows_proxy.cpp M +2 -0 effects/presentwindows/presentwindows_proxy.h http://commits.kde.org/kwin/57f8c6d5f88cfb05945d8a2837ed0cec3218e2f9 |