← Back to team overview

freenx-team team mailing list archive

[Bug 454487] Re: The program 'gnome-settings-daemon' received an X Window System error. During on a FreeNX server suring a session. The crash does not happen when xrandr plugin is disabled.

 

I confirm this fix works for me too, Thanks a lot.

-- 
The program 'gnome-settings-daemon' received an X Window System error. During on a FreeNX server suring a session. The crash does not happen when xrandr plugin is disabled.
https://bugs.launchpad.net/bugs/454487
You received this bug notification because you are a member of FreeNX
Team, which is the registrant for FreeNX Server.

Status in FreeNX open source NX Server: Invalid
Status in GNOME Desktop Common Files: Unknown
Status in “gnome-desktop” package in Ubuntu: Fix Committed
Status in gnome-desktop in Ubuntu Karmic: Fix Committed

Bug description:
I just installed karmic on my  freenx server machine when g-s-d starts it throws the following error:
gnome-settings-daemon Xlib:  extension "Generic Event Extension" missing on display ":1000.0".
Xlib:  extension "Generic Event Extension" missing on display ":1000.0".
Xlib:  extension "Generic Event Extension" missing on display ":1000.0".
Xlib:  extension "Generic Event Extension" missing on display ":1000.0".
Xlib:  extension "Generic Event Extension" missing on display ":1000.0".
The program 'gnome-settings-daemon' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadRequest (invalid request code or no such operation)'.
  (Details: serial 105 error_code 1 request_code 150 minor_code 8)
  (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.)

If I disable the xrandr plugin then the bug is not present (once bug 409621 is fixed).
This is a regression from Jaunty where the xrandr plugin worked.
I attach the the stack trace. If there is anything else I can do please let me know.

ProblemType: Bug
Architecture: amd64
Date: Sun Oct 18 17:10:18 2009
DistroRelease: Ubuntu 9.10
InstallationMedia: Ubuntu 9.10 "Karmic Koala" - Beta amd64 (20090929.2)
NonfreeKernelModules: nvidia
Package: libxrandr2 2:1.3.0-2
ProcEnviron:
 LANGUAGE=en_GB:en
 LANG=en_GB.UTF-8
 SHELL=/bin/bash
ProcVersionSignature: Ubuntu 2.6.31-14.48-generic
SourcePackage: libxrandr
Uname: Linux 2.6.31-14-generic x86_64

*** SRU stuff ***

Patch: http://launchpadlibrarian.net/34736555/gnome-desktop_2.28.1-0ubuntu3.debdiff

[Justification]
gnome-settings-daemon crashes at startup on X servers which don't support RANDR 1.2. This is a regression from Jaunty

[Description of patch]
The patch just traps the BadRequest error generated from the unsupported X call in gnome-desktop, and sets a GError, allowing the calling application to handle it.

[Test case]
Run gnome-settings-daemon with each version of gnome-desktop.

With gnome-desktop 2.28.1-0ubuntu2 - gnome-settings-daemon will crash
With gnome-desktop 2.28.1-0ubuntu3 - gnome-settings-daemon will not crash

[Regression risk]
The regression risk is low, because:

- gnome_rr_screen_new will now return a NULL GnomeRRScreen pointer and set a GError when called on servers that don't have RANDR 1.2 (as opposed to crashing). There are already other failure conditions in gnome_rr_screen_new which will return the same result, so this does not break API, and applications using it already handle the error properly (in the case of gnome-settings-daemon, the xrandr plugin just stops loading).

- This technique for trapping errors was used previously. There were XRR calls in the Jaunty code which were only supported on RANDR >= 1.2. These were wrapped with gdk_error_trap_{push,pop} in Jaunty, but it seems this got omitted when the code was changed this cycle.