After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 590979 - Unlock window doesn't show; gnome-screensaver-dialog crashes
Unlock window doesn't show; gnome-screensaver-dialog crashes
Status: RESOLVED NOTGNOME
Product: libgnomekbd
Classification: Core
Component: Indicator
2.24.x
Other Linux
: Normal critical
: ---
Assigned To: libgnomekbd maintainers
Sergey V. Udaltsov
Depends on:
Blocks:
 
 
Reported: 2009-08-06 17:46 UTC by Jeremy Nickurak
Modified: 2009-11-06 18:32 UTC
See Also:
GNOME target: ---
GNOME version: 2.25/2.26



Description Jeremy Nickurak 2009-08-06 17:46:55 UTC
Issue: Gnome-screensaver-dialog doesn't appear

Moving the mouse or typing when the screen is locked shows me the mouse cursor momentarily, then disappears again, without ever showing the password dialog. There's no obvious way to recover the desktop to a useful state, potentially resulting in data loss.

Attempting to run gnome-screensaver-dialog directly results in:

The program 'gnome-screensaver-dialog' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadClass, invalid event class'.
  (Details: serial 269 error_code 172 request_code 148 minor_code 6)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)

Program exited with code 01.

I'm running gnome-screensaver 2.24.0-0ubuntu6 on jaunty.

I rebuilt the gnome-screensaver with debugging symbols, and ran:

gdb --args gnome-screensaver-daemon --sync

with "break gdk_x_error" as suggested produces the following backtrace:

  • #1 xkl_process_error
    from /usr/lib/libxklavier.so.12
  • #2 _XError
    from /usr/lib/libX11.so.6
  • #3 ??
    from /usr/lib/libX11.so.6
  • #4 _XReply
    from /usr/lib/libX11.so.6
  • #5 XSync
    from /usr/lib/libX11.so.6
  • #6 ??
    from /usr/lib/libX11.so.6
  • #7 XSelectExtensionEvent
    from /usr/lib/libXi.so.6
  • #8 xkl_xkb_resume_listen
    from /usr/lib/libxklavier.so.12
  • #9 xkl_engine_resume_listen
    from /usr/lib/libxklavier.so.12
  • #10 xkl_engine_start_listen
    from /usr/lib/libxklavier.so.12
  • #11 ??
    from /usr/lib/libgnomekbdui.so.3
  • #12 g_type_create_instance
    from /usr/lib/libgobject-2.0.so.0
  • #13 ??
    from /usr/lib/libgobject-2.0.so.0
  • #14 g_object_newv
    from /usr/lib/libgobject-2.0.so.0
  • #15 g_object_new_valist
    from /usr/lib/libgobject-2.0.so.0
  • #16 g_object_new
    from /usr/lib/libgobject-2.0.so.0
  • #17 gkbd_indicator_new
    from /usr/lib/libgnomekbdui.so.3
  • #18 gs_lock_plug_init
    at gs-lock-plug.c line 1806
  • #19 g_type_create_instance
    from /usr/lib/libgobject-2.0.so.0
  • #20 ??
    from /usr/lib/libgobject-2.0.so.0
  • #21 g_object_newv
    from /usr/lib/libgobject-2.0.so.0
  • #22 g_object_new_valist
    from /usr/lib/libgobject-2.0.so.0
  • #23 g_object_new
    from /usr/lib/libgobject-2.0.so.0
  • #24 gs_lock_plug_new
    at gs-lock-plug.c line 1941
  • #25 popup_dialog_idle
    at gnome-screensaver-dialog.c line 368
  • #26 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #27 ??
    from /usr/lib/libglib-2.0.so.0
  • #28 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #29 IA__gtk_main
    at /build/buildd/gtk+2.0-2.16.1/gtk/gtkmain.c line 1205
  • #30 main
    at gnome-screensaver-dialog.c line 576

This was working fine on the machine a couple of weeks ago, but there was a power outage. Ever since the machine rebooted, locked sessions are impossible to unlock without logging in on a terminal and manually killing gnome-screensaver.
Comment 1 Jeremy Nickurak 2009-08-06 19:22:17 UTC
forwarded from http://bugs.launchpad.net/ubuntu/+source/gnome-screensaver/+bug/405543
Comment 2 Jeremy Nickurak 2009-08-12 18:29:44 UTC
Built gss 2.27.0 (from karmic), and it presents the same problem.

I've tried reseting /desktop/gnome/peripherals completely, with no improvement.

xscreensaver successfully locks and restores the screen without issue.

Gnome-screensaver is running on an ubuntu jaunty machine, ssh forwarded to a X server on a Scientific Linux 5.1 machine, running X Window System Version 7.1.1.

atrus@figment:/usr/local/src/gss$ setxkbmap -print
xkb_keymap {
	xkb_keycodes  { include "xfree86+aliases(qwerty)"	};
	xkb_types     { include "complete"	};
	xkb_compat    { include "complete"	};
	xkb_symbols   { include "pc+dvorak+us:2+compose(menu)"	};
	xkb_geometry  { include "pc(pc105)"	};
};
Comment 3 Jeremy Nickurak 2009-08-12 18:53:11 UTC
Aha, I've got a workaround and a better way to duplicate.

The bug didn't occur when I logged in locally.

Running on the X server's display (not x-forwarded):

$ setxkbmap -layout us

or

$ setxkbmap -layout dvorak

causes gss-dialog to run properly.

Running:

$ setxkbmap -layout dvorak,us

caused it to fail as above.
Comment 4 Jeremy Nickurak 2009-08-12 18:55:00 UTC
Another point,

"setxkbmap -layout dvorak,us" works on the host X server directly, but doesn't seem to work through the X-forwarded connection. I have to ssh to the host, set DISPLAY=:0.0 directly, and then run setxkbmap.
Comment 5 Chris Coulson 2009-11-06 18:32:03 UTC
This is actually a libxklavier bug, and is fixed in libxklavier CVS and also in the package in the latest version of Ubuntu.