https://bugs.kde.org/show_bug.cgi?id=468430

nyanpasu64 <nyanpas...@tuta.io> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |nyanpas...@tuta.io

--- Comment #7 from nyanpasu64 <nyanpas...@tuta.io> ---
After getting this plasmashell segfault multiple times a day (after leaving my
computer idle so KDE locks and blanks screens, then coming back), I have some
observations:

- `ShellCorona::screenInvariants()` is the direct cause of the crash, calling
`QScreen *screen = view->screenToFollow();` on a null pointer `const
DesktopView *view = desktopForScreen(knownScreen);`. Fascinatingly, in Qt
Creator, `ShellCorona::screenInvariants()` is only enabled in debug builds
(disabled in release builds with NDEBUG set).
- `desktopForScreen` can return null in normal operation. All other calls to
this function (aside from `ShellCorona::screenInvariants()`) check for nullptr
return, except that `ShellCorona::color()` calls it once, checks for null
pointer, and if not calls it *again* and relies on the function returning a
non-null value the second time.
- Is the function supposed to return null after screen blanking and then moving
my mouse? I don't know.

Screen layout:

nyanpasu64@ryzen ~/.ssh> kscreen-doctor -o
Output: 68 DP-1 enabled connected priority 1 DisplayPort Modes:
74:2560x1440@60*! 75:2560x1440@75 76:1920x1440@75 77:1920x1440@60
78:1856x1392@75 79:1856x1392@60 80:1792x1344@75 81:1792x1344@60 82:2048x1152@60
83:2048x1152@60 84:2048x1152@60 85:1920x1200@60 86:1920x1200@60 87:1920x1080@60
88:1920x1080@60 89:1920x1080@60 90:1920x1080@60 91:1920x1080@50 92:1920x1080@60
93:1920x1080@60 94:1600x1200@60 95:1600x1200@75 96:1600x1200@70 97:1600x1200@65
98:1600x1200@60 99:1680x1050@60 100:1680x1050@60 101:1400x1050@75
102:1400x1050@60 103:1600x900@60 104:1600x900@60 105:1600x900@60
106:1600x900@60 107:1280x1024@75 108:1280x1024@70 109:1280x1024@60
110:1440x900@60 111:1400x900@60 112:1400x900@60 113:1280x960@60 114:1440x810@60
115:1440x810@60 116:1368x768@60 117:1368x768@60 118:1280x800@60 119:1280x800@60
120:1280x800@60 121:1280x800@60 122:1280x800@60 123:1152x864@75 124:1280x720@60
125:1280x720@60 126:1280x720@60 127:1280x720@60 128:1280x720@50 129:1280x720@60
130:1280x720@60 131:1024x768@75 132:1024x768@60 133:1024x768@75 134:1024x768@70
135:1024x768@60 136:960x720@75 137:960x720@60 138:928x696@75 139:928x696@60
140:896x672@75 141:896x672@60 142:1024x576@60 143:1024x576@60 144:1024x576@60
145:1024x576@60 146:960x600@60 147:960x600@60 148:832x624@75 149:960x540@60
150:960x540@60 151:960x540@60 152:960x540@60 153:800x600@75 154:800x600@70
155:800x600@65 156:800x600@60 157:800x600@72 158:800x600@75 159:800x600@60
160:800x600@56 161:840x525@60 162:840x525@60 163:864x486@60 164:864x486@60
165:720x576@50 166:700x525@75 167:700x525@60 168:800x450@60 169:800x450@60
170:720x480@60 171:720x480@60 172:640x512@75 173:640x512@60 174:700x450@60
175:700x450@60 176:640x480@60 177:640x480@75 178:640x480@73 179:640x480@67
180:640x480@60 181:640x480@60 182:720x405@60 183:720x405@59 184:720x400@70
185:684x384@60 186:684x384@60 187:640x400@60 188:640x400@60 189:576x432@75
190:640x360@60 191:640x360@60 192:640x360@60 193:640x360@59 194:512x384@75
195:512x384@70 196:512x384@60 197:512x288@60 198:512x288@60 199:416x312@75
200:480x270@60 201:480x270@60 202:400x300@72 203:400x300@75 204:400x300@60
205:400x300@56 206:432x243@60 207:432x243@60 208:320x240@73 209:320x240@75
210:320x240@60 211:360x202@60 212:360x202@59 213:320x180@60 214:320x180@59
Geometry: 0,0 2560x1440 Scale: 1 Rotation: 1 Overscan: 0 Vrr: incapable
RgbRange: unknown
Output: 69 DP-2 disabled disconnected priority 0 DisplayPort Modes: Geometry:
0,0 0x0 Scale: 1 Rotation: 1 Overscan: 0 Vrr: incapable RgbRange: unknown
Output: 70 HDMI-1 enabled connected priority 2 HDMI Modes: 88:1920x1080@60
90:1920x1080@60*! 93:1920x1080@60 99:1680x1050@60 100:1680x1050@60
101:1400x1050@75 102:1400x1050@60 105:1600x900@60 106:1600x900@60
107:1280x1024@75 109:1280x1024@60 111:1400x900@60 112:1400x900@60
113:1280x960@60 115:1440x810@60 116:1368x768@60 117:1368x768@60 119:1280x800@60
120:1280x800@60 121:1280x800@60 122:1280x800@60 123:1152x864@75 124:1280x720@60
125:1280x720@60 126:1280x720@60 130:1280x720@60 131:1024x768@75 132:1024x768@60
133:1024x768@75 134:1024x768@70 135:1024x768@60 136:960x720@75 137:960x720@60
138:928x696@75 139:928x696@60 140:896x672@75 141:896x672@60 142:1024x576@60
143:1024x576@60 144:1024x576@60 145:1024x576@60 146:960x600@60 147:960x600@60
148:832x624@75 149:960x540@60 150:960x540@60 151:960x540@60 152:960x540@60
153:800x600@75 154:800x600@70 155:800x600@65 156:800x600@60 157:800x600@72
158:800x600@75 159:800x600@60 160:800x600@56 161:840x525@60 162:840x525@60
163:864x486@60 164:864x486@60 166:700x525@75 167:700x525@60 168:800x450@60
169:800x450@60 172:640x512@75 173:640x512@60 174:700x450@60 175:700x450@60
176:640x480@60 177:640x480@75 178:640x480@73 181:640x480@60 182:720x405@60
183:720x405@59 184:720x400@70 185:684x384@60 186:684x384@60 187:640x400@60
188:640x400@60 189:576x432@75 190:640x360@60 191:640x360@60 192:640x360@60
193:640x360@59 194:512x384@75 195:512x384@70 196:512x384@60 197:512x288@60
198:512x288@60 199:416x312@75 200:480x270@60 201:480x270@60 202:400x300@72
203:400x300@75 204:400x300@60 205:400x300@56 206:432x243@60 207:432x243@60
208:320x240@73 209:320x240@75 210:320x240@60 211:360x202@60 212:360x202@59
213:320x180@60 214:320x180@59 215:1680x1050@60 216:1440x900@60 217:1280x800@60
218:1280x720@60 1913:640x480@60 Geometry: 2560,0 1080x1920 Scale: 1 Rotation: 2
Overscan: 0 Vrr: incapable RgbRange: unknown
Output: 71 HDMI-2 disabled disconnected priority 0 HDMI Modes: Geometry: 0,0
0x0 Scale: 1 Rotation: 1 Overscan: 0 Vrr: incapable RgbRange: unknown
Output: 72 DVI-D-1 disabled disconnected priority 0 DVI Modes: Geometry: 0,0
0x0 Scale: 1 Rotation: 1 Overscan: 0 Vrr: incapable RgbRange: unknown

(please ignore `1913:640x480@60`, that's a custom mode added by a xrandr
manager I'm developing at https://codeberg.org/nyanpasu64/auto-modeline)

DP-1 is my main display, HDMI-1 is my second display hooked up vertically, and
DP-2 is a DP-to-VGA converter connected to no monitor at the time of the
plasmashell crash. The crash occurred after the screen locked, blanked, and
woke up.

I've managed to reproduce this issue using:

- Check "Manually block sleep and screen locking" (not sure if the issue
reproduces without this)
- Lock the screen
- Wait for monitors to go black with a mouse cursor, then turn off
- Move the mouse to wake up the monitors (and crash plasmashell), then log in
and run coredumpctl to find a crashed plasmashell.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to