GNOME Bugzilla – Bug 659497
Does not lock screen visibly and cannot unlock screen again
Last modified: 2014-08-20 20:23:22 UTC
Hi, I have the current version 3.1.91 of gnome-screensaver installed as part of upgrading to latest unstable gnome desktop. Since upgrading from 3.0.0 to 3.1.91 I cannot lock my screen. To be more precise it locks the screen but it does not blank the screen. So I still see all my open windows and I can move the mouse around. I cannot click anything and I cannot interact with the keyboard. In addition to the missing blanking of the locked screen I cannot unlock anymore. I do not get any window asking me to enter my password for unlocking. Even if I try just to enter it because the window might be as invisible as the blanking screen I does not work. I have to change to a console, log in and enter "killall gnome-screensaver" to unlock again. I do not need to say that unlocking after suspend does not work either and is a blocker for me :( This problem is reproducible every time by just choosing "Lock screen" in user status menu of gnome-shell. I started gnome-screensaver in a console with debug turned on but I do not get any useful information. maybe you can see what is going wrong? ;) ---- stephan@froschmobil ~ $ gnome-screensaver --debug --no-daemon [gs_debug_init] gs-debug.c:106 (19:48:42): Debugging enabled [main] gnome-screensaver.c:86 (19:48:42): initializing gnome-screensaver 3.1.91 [init_session_id] gs-listener-dbus.c:1287 (19:48:42): Got session-id: /org/freedesktop/ConsoleKit/Session2 (gnome-screensaver:23802): GnomeDesktop-WARNING **: could not get output property for LVDS, rc: 15 (gnome-screensaver:23802): GnomeDesktop-WARNING **: could not get output property for HDMI-0, rc: 15 [gs_fade_init] gs-fade.c:884 (19:48:42): Fade type: 3 [set_status] gs-watcher-x11.c:347 (19:48:42): GSWatcher: not active, ignoring status changes [gs_watcher_set_active] gs-watcher-x11.c:277 (19:48:42): turning watcher: ON [listener_dbus_handle_system_message] gs-listener-dbus.c:764 (19:48:42): obj_path=/org/freedesktop/DBus interface=org.freedesktop.DBus method=NameAcquired destination=:1.133 [on_bg_changed] gs-manager.c:549 (19:48:42): background changed [gs_manager_set_lock_active] gs-manager.c:129 (19:48:46): Setting lock active: 1 [gs_grab_grab_root] gs-grab-x11.c:538 (19:48:46): Grabbing the root window [gs_grab_get_keyboard] gs-grab-x11.c:153 (19:48:46): Grabbing keyboard widget=166 [gs_grab_get_keyboard] gs-grab-x11.c:168 (19:48:46): Couldn't grab keyboard! (AlreadyGrabbed) [gs_grab_get_keyboard] gs-grab-x11.c:153 (19:48:47): Grabbing keyboard widget=166 [gs_grab_get_mouse] gs-grab-x11.c:188 (19:48:47): Grabbing mouse widget=166 [gs_manager_create_windows_for_screen] gs-manager.c:1175 (19:48:47): Creating 2 windows for screen 0 [gs_manager_create_window_for_monitor] gs-manager.c:998 (19:48:47): Creating window for monitor 0 [0,124] (1600x900) [gs_manager_create_window_for_monitor] gs-manager.c:998 (19:48:47): Creating window for monitor 1 [1600,0] (1280x1024) [gs_manager_activate] gs-manager.c:1268 (19:48:47): fading out (gnome-screensaver:23802): GnomeDesktop-WARNING **: could not get output property for LVDS, rc: 15 (gnome-screensaver:23802): GnomeDesktop-WARNING **: could not get output property for HDMI-0, rc: 15 Beendet ---- Regards, Stephan Haller
Thanks for taking the time to report this bug. This particular bug has already been reported into our bug tracking system, but we are happy to tell you that the problem has already been fixed. It should be solved in the next software version. You may want to check for a software upgrade. *** This bug has been marked as a duplicate of bug 657869 ***
Reopening as discussed in bug 657869. Do you only see this problem in multi-monitor configurations? I'm assuming since you have an output named HDMI-0 and not HDMI0 you are not on intel graphics. Is that correct? For the record, the list of substantive changes in gnome-screensaver between 3.0 and 3.1.91 are: - Use GnomeWallClock - Properly clear to black when cancelling unlock - Return layout indicator to the screensaver unlock dialog - dialog: Fix crash in user switcher code Everything else is translation updates, non-code changes, code that was committed then reverted, and very minor bug fixes.
Yes, that's right. I'm running on both computer a dual display setup. This computer is a laptop with an ATI graphics card using the LCD display built-in and a LCD display connected via HDMI. The second one is a workstation having a NVIDIA graphics card with two LCD monitors connected by DVI and VGA. Both graphics cards are driven by the open-source graphics drivers (radeon/nouveau) with Mesa 7.11 for 3d. It sounds like you would like to suggest trying to run the system in a single display setup? I reinstalled 3.1.91 to try it but without luck - even in single display setup. Anything else to try?
can you kill gnome-screensaver then run gnome-screensaver --debug in a terminal reproduce, kill it from a vt and paste the terminal output into this bug?
No problem. I did it for a dual display setup when opening this bug. But here they are for dual and single display setup. They are from the first computer with ATI graphics card and radeon open-source driver. ---- Dual display setup: stephan@froschmobil ~ $ gnome-screensaver --no-daemon --debug [gs_debug_init] gs-debug.c:106 (05:41:31): Debugging enabled [main] gnome-screensaver.c:86 (05:41:31): initializing gnome-screensaver 3.1.91 [init_session_id] gs-listener-dbus.c:1287 (05:41:31): Got session-id: /org/freedesktop/ConsoleKit/Session14 (gnome-screensaver:25447): GnomeDesktop-WARNING **: could not get output property for LVDS, rc: 15 (gnome-screensaver:25447): GnomeDesktop-WARNING **: could not get output property for HDMI-0, rc: 15 [gs_fade_init] gs-fade.c:884 (05:41:31): Fade type: 3 [set_status] gs-watcher-x11.c:347 (05:41:31): GSWatcher: not active, ignoring status changes [gs_manager_set_lock_enabled] gs-manager.c:162 (05:41:31): GSManager: lock-enabled=1 [gs_watcher_set_active] gs-watcher-x11.c:277 (05:41:31): turning watcher: ON [listener_dbus_handle_system_message] gs-listener-dbus.c:764 (05:41:31): obj_path=/org/freedesktop/DBus interface=org.freedesktop.DBus method=NameAcquired destination=:1.468 [on_bg_changed] gs-manager.c:549 (05:41:31): background changed [gs_manager_set_lock_active] gs-manager.c:129 (05:41:37): Setting lock active: 1 [gs_grab_grab_root] gs-grab-x11.c:538 (05:41:37): Grabbing the root window [gs_grab_get_keyboard] gs-grab-x11.c:153 (05:41:37): Grabbing keyboard widget=155 [gs_grab_get_keyboard] gs-grab-x11.c:168 (05:41:37): Couldn't grab keyboard! (AlreadyGrabbed) [gs_grab_get_keyboard] gs-grab-x11.c:153 (05:41:38): Grabbing keyboard widget=155 [gs_grab_get_mouse] gs-grab-x11.c:188 (05:41:38): Grabbing mouse widget=155 [gs_manager_create_windows_for_screen] gs-manager.c:1175 (05:41:38): Creating 2 windows for screen 0 [gs_manager_create_window_for_monitor] gs-manager.c:998 (05:41:38): Creating window for monitor 0 [0,124] (1600x900) [gs_manager_create_window_for_monitor] gs-manager.c:998 (05:41:38): Creating window for monitor 1 [1600,0] (1280x1024) [gs_manager_activate] gs-manager.c:1268 (05:41:38): fading out (gnome-screensaver:25447): GnomeDesktop-WARNING **: could not get output property for LVDS, rc: 15 (gnome-screensaver:25447): GnomeDesktop-WARNING **: could not get output property for HDMI-0, rc: 15 Beendet ---- Single display setup: stephan@froschmobil ~ $ gnome-screensaver --no-daemon --debug [gs_debug_init] gs-debug.c:106 (05:43:03): Debugging enabled [main] gnome-screensaver.c:86 (05:43:03): initializing gnome-screensaver 3.1.91 [init_session_id] gs-listener-dbus.c:1287 (05:43:03): Got session-id: /org/freedesktop/ConsoleKit/Session14 (gnome-screensaver:25482): GnomeDesktop-WARNING **: could not get output property for LVDS, rc: 15 [gs_fade_init] gs-fade.c:884 (05:43:03): Fade type: 3 [set_status] gs-watcher-x11.c:347 (05:43:03): GSWatcher: not active, ignoring status changes [gs_manager_set_lock_enabled] gs-manager.c:162 (05:43:03): GSManager: lock-enabled=1 [gs_watcher_set_active] gs-watcher-x11.c:277 (05:43:03): turning watcher: ON [listener_dbus_handle_system_message] gs-listener-dbus.c:764 (05:43:03): obj_path=/org/freedesktop/DBus interface=org.freedesktop.DBus method=NameAcquired destination=:1.470 [on_bg_changed] gs-manager.c:549 (05:43:03): background changed [gs_manager_set_lock_active] gs-manager.c:129 (05:43:07): Setting lock active: 1 [gs_grab_grab_root] gs-grab-x11.c:538 (05:43:07): Grabbing the root window [gs_grab_get_keyboard] gs-grab-x11.c:153 (05:43:07): Grabbing keyboard widget=155 [gs_grab_get_keyboard] gs-grab-x11.c:168 (05:43:07): Couldn't grab keyboard! (AlreadyGrabbed) [gs_grab_get_keyboard] gs-grab-x11.c:153 (05:43:08): Grabbing keyboard widget=155 [gs_grab_get_mouse] gs-grab-x11.c:188 (05:43:08): Grabbing mouse widget=155 [gs_manager_create_windows_for_screen] gs-manager.c:1175 (05:43:08): Creating 1 windows for screen 0 [gs_manager_create_window_for_monitor] gs-manager.c:998 (05:43:08): Creating window for monitor 0 [0,0] (1600x900) [gs_manager_activate] gs-manager.c:1268 (05:43:08): fading out (gnome-screensaver:25482): GnomeDesktop-WARNING **: could not get output property for LVDS, rc: 15 Beendet ---- gnome-screensaver was killed at vt with default TERM signal (killall gnome-screensaver).
You're unable to lock the screen because something in your session has already locked the keyboard: [gs_grab_get_keyboard] gs-grab-x11.c:168 (05:41:37): Couldn't grab keyboard! (AlreadyGrabbed) Unfortunately there's no easy way to find out what's doing it. Given that you were able to type gnome-screensaver into your terminal, maybe it's your terminal that's grabbing the keyboard? Do you run an exotic terminal (or any other exotic programs) ?
No, I'm using gnome-terminal only. It's strange because then gnome-screensaver 3.0.0 is able to grad keyboard (although the same application are running). Ermmm .. yes, there is one "exotic" application. I using a clipboard programm which remembers the last entries in clipboard. It's called GPaste and it's like klipper in KDE. I will stop it and try again. But if it is working then I'm surprised why the older gnome-screensaver version is working and the new one does not. Both versions have to face this keyboard grabbing app.
yea that's very strange. Especially given there hasn't been any changes to the way gnome-screensaver attempts to do grabs between the two versions.
As promised I turned off the clipboard tracking application and killed any related process, reinstalled gnome-screensaver 3.1.91 and tried again. It didn't work. The same output and the same effect. That's really strange as I cannot see any changes in the grabbing code. Also it cannot be GDK-related because regardless if I compile version 3.0.0 or 3.1.91 of gnome-screensaver, both will use the same shared library (in version and file) of GTK/GDK. If there aren't any ideas left I consider to close this bug as INVALID or WONTFIX. But it keeps strange that I can reproduce the problem by just switching only between both gnome-screensaver versions. I do not change any other app or library when switching :(
I can confirm this bug to be still there on version 3.2.0. Symptoms are the same as original report. I'm on a laptop with Radeon card and single display setup. Here is the debug output: ~ $ gnome-screensaver --debug [gs_debug_init] gs-debug.c:106 (11:48:18): Debugging enabled [main] gnome-screensaver.c:86 (11:48:18): initializing gnome-screensaver 3.2.0 [init_session_id] gs-listener-dbus.c:1287 (11:48:18): Got session-id: /org/freedesktop/ConsoleKit/Session2 [gs_fade_init] gs-fade.c:884 (11:48:18): Fade type: 3 [set_status] gs-watcher-x11.c:347 (11:48:18): GSWatcher: not active, ignoring status changes [gs_manager_set_lock_enabled] gs-manager.c:162 (11:48:18): GSManager: lock-enabled=1 [gs_watcher_set_active] gs-watcher-x11.c:277 (11:48:18): turning watcher: ON [listener_dbus_handle_system_message] gs-listener-dbus.c:764 (11:48:18): obj_path=/org/freedesktop/DBus interface=org.freedesktop.DBus method=NameAcquired destination=:1.129 [on_bg_changed] gs-manager.c:549 (11:48:18): background changed [gs_manager_set_lock_active] gs-manager.c:129 (11:48:27): Setting lock active: 1 [gs_grab_grab_root] gs-grab-x11.c:538 (11:48:27): Grabbing the root window [gs_grab_get_keyboard] gs-grab-x11.c:153 (11:48:27): Grabbing keyboard widget=156 [gs_grab_get_keyboard] gs-grab-x11.c:168 (11:48:27): Couldn't grab keyboard! (AlreadyGrabbed) [gs_grab_get_keyboard] gs-grab-x11.c:153 (11:48:28): Grabbing keyboard widget=156 [gs_grab_get_mouse] gs-grab-x11.c:188 (11:48:28): Grabbing mouse widget=156 [gs_manager_create_windows_for_screen] gs-manager.c:1175 (11:48:28): Creating 1 windows for screen 0 [gs_manager_create_window_for_monitor] gs-manager.c:998 (11:48:28): Creating window for monitor 0 [0,0] (1920x1080) [gs_manager_activate] gs-manager.c:1268 (11:48:28): fading out Terminated
Just upgraded a few packages and the problem seems to be solved... one of the packages was dbus-glib which got upgraded to 0.98. I'm guessing that was what solved it but I'm not sure...
Great advice. I can confirm. After upgrading dbus-glib to 0.98 the problem with gnome-screensaver 3.2.0 seems to be gone. Even fading out looks performing faster. But the best is I can unlock my screen again :) I will check if upgrading dbus-glib from 0.92 to 0.98 will fix the second computer also. Maybe the configure script should look if dbus-glib is greater or equal to 0.98 instead of 0.30?
hmm i can't imagine dbus-glib is taking a keyboard grab though. there must be more to this than meets the eye. Maybe a bug in older dbus-glib prevented some other app from releasing its keyboard grab because it didn't get a signal or something?
I have no idea also. But even the second computer can now run gnome-screensaver beyond version 3.0.0. It's not running perfectly on this second computer but it can blank and unlock the screen after upgrading dbus-glib to version 0.98. I would still advice to change minimum version requirement of dbus-glib in configure.ac script.
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.