GNOME Bugzilla – Bug 618932
gnome-screensaver crashes in KVM
Last modified: 2014-08-20 20:23:25 UTC
gnome-screensaver crashes with an unhandled X error when trying to lock the screen in KVM. I've attached the xtrace log and output of "gnome-screensaver --debug --no-daemon" The debug log shows the fade type being set to FADE_TYPE_GAMMA_RAMP in check_gamma_extension, due to the presence of the XF86VM extension. The xtrace log shows XF86VidModeGetGammaRampSize in gamma_fade_setup return a size of zero, at which point the fade type is changed to FADE_TYPE_GAMMA_NUMBER. XF86VidModeGetGamma then successfully returns the current gamma value. However, when trying to set the gamma in xf86_whack_gamma, XF86VidModeSetGamma causes a BadValue error on the first iteration (as shown in xtrace), even though all the values are sane. This appears to be not handled properly on KVM, and with no way of knowing this beforehand, the error should be trapped correctly. This behaviour seems to have changed in a recent X server version. Previously, this only worked because XF86VidModeSetGamma completed successfully in KVM, despite not actually changing the gamma value.
Created attachment 161274 [details] xtrace log
Created attachment 161275 [details] Output of gnome-screensaver --debug --no-daemon
Created attachment 161276 [details] [review] /0001-Don-t-crash-when-the-XF86VM-extension-doesn-t-allow-.patch
Dave, any thoughts on this?
Chris, can you provide any details about which versions are subject to this? I'm not able to reproduce right now. Thanks.
Hi @William I belive, this bug is specific to ubuntu due to patch from https://bugzilla.gnome.org/show_bug.cgi?id=610294 .
Also, in xf86_whack_gamma, add trap to gdk_flush. This should fix the issue, when using vnc based display.
The screen lock is now implemented directly in gnome-shell, not in gnome-screensaver (as it was with older version of GNOME 3 and GNOME 2.x). If the reported problems persists in recent versions of GNOME, please file a new bug against gnome-shell with the "lock-screen" component selected. If your installation is an older version of GNOME that cannot be upgraded (such as an enterprise version), please use the appropriate support mechanism from your vendor, or your distribution instead.