GNOME Bugzilla – Bug 358963
gnome-screensaver dies on activation
Last modified: 2006-10-02 17:05:31 UTC
When gnome-screensaver is activated, the screen fades out then it dies with n X error. The screen is left black and the X server must be restarted. The mouse cursor is drawn and all windows on the desktop are still selectable etc. (the mouse cursor changes to drag / resize style). Don't know if this is a gnome-screensaver issue or an X server issue, but it didn't happen in gnome-screensaver < 2.14. Ubuntu Edgy, nvidia graphics card (variety of drivers), dual head non-xinerama. The program 'gnome-screensaver' received an X Window System error. This probably reflects a bug in the program. The error was 'BadMatch (invalid parameter attributes)'. (Details: serial 1741 error_code 8 request_code 1 minor_code 0) (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.) Breaking on gdk_x_error (with sync) results in the stacktrace:
+ Trace 74040
I haven't been able to reproduce this but it was also reported here: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=208199 And the stack traces are very similar. Could you install the debuginfo package for gnome-screensaver and get a new backtrace? It will have a bit more info for us. If you could do it as soon as possible it would be great since I'd like to get this fixed today for the release. http://live.gnome.org/GettingTraces#head-62fed2004a51381957ab279a3e38f685a11ea0a8 Thanks.
I suspect that an error from the visual guessing is coming up after we remove the error handler. I've committed the following to CVS, can you please test it: 2006-10-02 William Jon McCann <mccann@jhu.edu> * src/gs-grab-x11.c: (xorg_lock_smasher_set_active), (gs_grab_nuke_focus): * src/gs-visual-gl.c: (gs_visual_gl_get_best_for_screen): * src/gs-watcher-x11.c: (notice_events), (init_mit_saver_extension): * src/gs-window-x11.c: (clear_all_children), (select_popup_events): Sync X11 display before removing error handlers. Hopefully fixes #358963
Testing CVS from today (including the above commit). Unfortunately, the commit doesn't seem to help. Same behavior as before, same stacktrace. Complete stacktrace from running 'gnome-screensaver --no-daemon --debug --sync':
+ Trace 74082
Thread 1 (Thread -1222603920 (LWP 5058))
The relevent part of the log: (Prior to this, its a series of "killing idle_timer. Starting idle_timer. Been idle for 0s" etc.) [add_idle_timer] gs-watcher-x11.c:393 (15:39:23): starting idle_timer (590000, 37) [listener_service_deleted] gs-listener-dbus.c:858 (15:39:23): DBUS service deleted: [gs_manager_set_lock_active] gs-manager.c:403 (15:39:23): Setting lock active: 1 [gs_grab_grab_root] gs-grab-x11.c:481 (15:39:23): Grabbing the root window [gs_grab_get_keyboard] gs-grab-x11.c:165 (15:39:23): Grabbing keyboard widget=2EA [gs_grab_get_mouse] gs-grab-x11.c:194 (15:39:23): Grabbing mouse widget=2EA [gs_manager_activate] gs-manager.c:1457 (15:39:23): fading out [_gs_watcher_notice_activity] gs-watcher-x11.c:485 (15:39:23): Activity detected: resetting timers [remove_idle_timer] gs-watcher-x11.c:380 (15:39:23): killing idle_timer (600000, 37) [add_idle_timer] gs-watcher-x11.c:393 (15:39:23): starting idle_timer (590000, 39) [_gs_watcher_check_pointer_position] gs-watcher-x11.c:1309 (15:39:23): Idle 0 seconds [check_for_clock_skew] gs-watcher-x11.c:1229 (15:39:23): checking wall clock for hibernation, changed: 0:00:01 [_gs_watcher_check_pointer_position] gs-watcher-x11.c:1309 (15:39:24): Idle 1 seconds [check_for_clock_skew] gs-watcher-x11.c:1229 (15:39:24): checking wall clock for hibernation, changed: 0:00:01 [fade_done_cb] gs-manager.c:1418 (15:39:24): fade completed, showing windows [get_best_visual] gs-window-x11.c:386 (15:39:24): Found best visual for GL: 0x21 [window_map_cb] gs-manager.c:1179 (15:39:24): Handling window map event [gs_window_clear] gs-window-x11.c:267 (15:39:24): Clearing window [clear_all_children] gs-window-x11.c:241 (15:39:24): Clearing all child windows [window_show_cb] gs-manager.c:1228 (15:39:25): Handling window show [get_best_visual] gs-window-x11.c:386 (15:39:25): Found best visual for GL: 0x21 The program 'gnome-screensaver' received an X Window System error. This probably reflects a bug in the program. The error was 'BadMatch (invalid parameter attributes)'. (Details: serial 1765 error_code 8 request_code 1 minor_code 0) (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.)
Darn. Can you please attach the output of xdpyinfo?
Created attachment 73857 [details] xdpyinfo output xdpyinfo attached.
Created attachment 73863 [details] [review] patch OK, I see the problem. Does this patch fix it for you?
Oh, and please attach a debug log after restarting with that patch applied. Thank you.
Created attachment 73866 [details] Attached debug output Yes, with the patch applied, things work as expected. Attached is the debug log as requested. Thanks.
Sweet. Thanks so much for your help and quick testing!