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 583709 - Crashes on startup logging in from remote.
Crashes on startup logging in from remote.
Status: RESOLVED FIXED
Product: libgnomekbd
Classification: Core
Component: Config
2.26.x
Other All
: Normal critical
: ---
Assigned To: libgnomekbd maintainers
Sergey V. Udaltsov
: 585054 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2009-05-24 11:06 UTC by Paul Menzel
Modified: 2011-01-29 23:11 UTC
See Also:
GNOME target: ---
GNOME version: 2.25/2.26



Description Paul Menzel 2009-05-24 11:06:10 UTC
Steps to reproduce:
1. Log in with x2goclient_gtk [1].
2. An error message is displayed.

[1] http://www.x2go.org/

Stack trace:
(gdb) run --no-daemon --debug --sync
Starting program: /usr/bin/gnome-settings-daemon --no-daemon --debug --sync
[Thread debugging using libthread_db enabled]
[New Thread 0xf6eed710 (LWP 14533)]
** (gnome-settings-daemon:14533): DEBUG: Successfully connected to D-Bus
** (gnome-settings-daemon:14533): DEBUG: Starting settings manager
** (gnome-settings-daemon:14533): DEBUG: Loading settings plugins from dir: /usr/lib/gnome-settings-daemon-2.0/
** (gnome-settings-daemon:14533): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/dummy.gnome-settings-plugin
** (gnome-settings-daemon:14533): DEBUG: GnomeSettingsPluginInfo: name='Dummy' file='/usr/lib/gnome-settings-daemon-2.0/dummy.gnome-settings-plugin' location='dummy'
** (gnome-settings-daemon:14533): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/dummy for changes
** (gnome-settings-daemon:14533): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/media-keys.gnome-settings-plugin
** (gnome-settings-daemon:14533): DEBUG: GnomeSettingsPluginInfo: name='Medientasten' file='/usr/lib/gnome-settings-daemon-2.0/media-keys.gnome-settings-plugin' location='media-keys'
** (gnome-settings-daemon:14533): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/media-keys for changes
** (gnome-settings-daemon:14533): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/keybindings.gnome-settings-plugin
** (gnome-settings-daemon:14533): DEBUG: GnomeSettingsPluginInfo: name='Tastenkürzel' file='/usr/lib/gnome-settings-daemon-2.0/keybindings.gnome-settings-plugin' location='keybindings'
** (gnome-settings-daemon:14533): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/keybindings for changes
** (gnome-settings-daemon:14533): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/xrandr.gnome-settings-plugin
** (gnome-settings-daemon:14533): DEBUG: GnomeSettingsPluginInfo: name='XRandR' file='/usr/lib/gnome-settings-daemon-2.0/xrandr.gnome-settings-plugin' location='xrandr'
** (gnome-settings-daemon:14533): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/xrandr for changes
** (gnome-settings-daemon:14533): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/typing-break.gnome-settings-plugin
** (gnome-settings-daemon:14533): DEBUG: GnomeSettingsPluginInfo: name='Tipppause' file='/usr/lib/gnome-settings-daemon-2.0/typing-break.gnome-settings-plugin' location='typing-break'
** (gnome-settings-daemon:14533): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/typing-break for changes
** (gnome-settings-daemon:14533): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/background.gnome-settings-plugin
** (gnome-settings-daemon:14533): DEBUG: GnomeSettingsPluginInfo: name='Hintergrund' file='/usr/lib/gnome-settings-daemon-2.0/background.gnome-settings-plugin' location='background'
** (gnome-settings-daemon:14533): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/background for changes
** (gnome-settings-daemon:14533): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/mouse.gnome-settings-plugin
** (gnome-settings-daemon:14533): DEBUG: GnomeSettingsPluginInfo: name='Maus' file='/usr/lib/gnome-settings-daemon-2.0/mouse.gnome-settings-plugin' location='mouse'
** (gnome-settings-daemon:14533): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/mouse for changes
** (gnome-settings-daemon:14533): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/xsettings.gnome-settings-plugin
** (gnome-settings-daemon:14533): DEBUG: GnomeSettingsPluginInfo: name='X-Einstellungen' file='/usr/lib/gnome-settings-daemon-2.0/xsettings.gnome-settings-plugin' location='xsettings'
** (gnome-settings-daemon:14533): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/xsettings for changes
** (gnome-settings-daemon:14533): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/sound.gnome-settings-plugin
** (gnome-settings-daemon:14533): DEBUG: GnomeSettingsPluginInfo: name='Audio' file='/usr/lib/gnome-settings-daemon-2.0/sound.gnome-settings-plugin' location='sound'
** (gnome-settings-daemon:14533): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/sound for changes
** (gnome-settings-daemon:14533): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/a11y-keyboard.gnome-settings-plugin
** (gnome-settings-daemon:14533): DEBUG: GnomeSettingsPluginInfo: name='Barrierefreie Tastatur' file='/usr/lib/gnome-settings-daemon-2.0/a11y-keyboard.gnome-settings-plugin' location='a11y-keyboard'
** (gnome-settings-daemon:14533): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/a11y-keyboard for changes
** (gnome-settings-daemon:14533): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/housekeeping.gnome-settings-plugin
** (gnome-settings-daemon:14533): DEBUG: GnomeSettingsPluginInfo: name='Housekeeping' file='/usr/lib/gnome-settings-daemon-2.0/housekeeping.gnome-settings-plugin' location='housekeeping'
** (gnome-settings-daemon:14533): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/housekeeping for changes
** (gnome-settings-daemon:14533): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/keyboard.gnome-settings-plugin
** (gnome-settings-daemon:14533): DEBUG: GnomeSettingsPluginInfo: name='Tastatur' file='/usr/lib/gnome-settings-daemon-2.0/keyboard.gnome-settings-plugin' location='keyboard'
** (gnome-settings-daemon:14533): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/keyboard for changes
** (gnome-settings-daemon:14533): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/clipboard.gnome-settings-plugin
** (gnome-settings-daemon:14533): DEBUG: GnomeSettingsPluginInfo: name='Zwischenablage' file='/usr/lib/gnome-settings-daemon-2.0/clipboard.gnome-settings-plugin' location='clipboard'
** (gnome-settings-daemon:14533): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/clipboard for changes
** (gnome-settings-daemon:14533): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/xrdb.gnome-settings-plugin
** (gnome-settings-daemon:14533): DEBUG: GnomeSettingsPluginInfo: name='X-Ressourcendatenbank' file='/usr/lib/gnome-settings-daemon-2.0/xrdb.gnome-settings-plugin' location='xrdb'
** (gnome-settings-daemon:14533): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/xrdb for changes
** (gnome-settings-daemon:14533): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/screensaver.gnome-settings-plugin
** (gnome-settings-daemon:14533): DEBUG: GnomeSettingsPluginInfo: name='Bildschirmschoner' file='/usr/lib/gnome-settings-daemon-2.0/screensaver.gnome-settings-plugin' location='screensaver'
** (gnome-settings-daemon:14533): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/screensaver for changes
** (gnome-settings-daemon:14533): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/font.gnome-settings-plugin
** (gnome-settings-daemon:14533): DEBUG: GnomeSettingsPluginInfo: name='Schrift' file='/usr/lib/gnome-settings-daemon-2.0/font.gnome-settings-plugin' location='font'
** (gnome-settings-daemon:14533): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/font for changes
** (gnome-settings-daemon:14533): DEBUG: GnomeSettingsModule 0x8179a50 initialising
** (gnome-settings-daemon:14533): DEBUG: Loading /usr/lib/gnome-settings-daemon-2.0/libxrandr.so
** (gnome-settings-daemon:14533): DEBUG: Registering GsdXrandrPlugin
** (gnome-settings-daemon:14533): DEBUG: Creating object of type GsdXrandrPlugin
** (gnome-settings-daemon:14533): DEBUG: GsdXrandrPlugin initializing
** (gnome-settings-daemon:14533): DEBUG: Activating xrandr plugin
** (gnome-settings-daemon:14533): DEBUG: Starting xrandr manager

** (gnome-settings-daemon:14533): WARNING **: Unable to start xrandr manager: Failed to initialize XRandR extension
** (gnome-settings-daemon:14533): DEBUG: GnomeSettingsManager: emitting plugin-activated xrandr
** (gnome-settings-daemon:14533): DEBUG: Plugin xrandr: active
** (gnome-settings-daemon:14533): DEBUG: GnomeSettingsModule 0x8179aa0 initialising
** (gnome-settings-daemon:14533): DEBUG: Loading /usr/lib/gnome-settings-daemon-2.0/libxsettings.so
** (gnome-settings-daemon:14533): DEBUG: Registering GnomeXSettingsPlugin
** (gnome-settings-daemon:14533): DEBUG: Creating object of type GnomeXSettingsPlugin
** (gnome-settings-daemon:14533): DEBUG: GnomeXSettingsPlugin initializing
** (gnome-settings-daemon:14533): DEBUG: Activating xsettings plugin
** (gnome-settings-daemon:14533): DEBUG: Starting xsettings manager
[New Thread 0xf6c97b90 (LWP 14597)]
** (gnome-settings-daemon:14533): DEBUG: GnomeSettingsManager: emitting plugin-activated xsettings
** (gnome-settings-daemon:14533): DEBUG: Plugin xsettings: active
** (gnome-settings-daemon:14533): DEBUG: GnomeSettingsModule 0x8179b40 initialising
** (gnome-settings-daemon:14533): DEBUG: Loading /usr/lib/gnome-settings-daemon-2.0/libsound.so
** (gnome-settings-daemon:14533): DEBUG: Registering GsdSoundPlugin
** (gnome-settings-daemon:14533): DEBUG: Creating object of type GsdSoundPlugin
** (gnome-settings-daemon:14533): DEBUG: GsdSoundPlugin initializing
** (gnome-settings-daemon:14533): DEBUG: Activating sound plugin
** (gnome-settings-daemon:14533): DEBUG: Starting sound manager
** (gnome-settings-daemon:14533): DEBUG: GnomeSettingsManager: emitting plugin-activated sound
** (gnome-settings-daemon:14533): DEBUG: Plugin sound: active
** (gnome-settings-daemon:14533): DEBUG: GnomeSettingsModule 0x8179b90 initialising
** (gnome-settings-daemon:14533): DEBUG: Loading /usr/lib/gnome-settings-daemon-2.0/libfont.so
** (gnome-settings-daemon:14533): DEBUG: Registering GsdFontPlugin
** (gnome-settings-daemon:14533): DEBUG: Creating object of type GsdFontPlugin
** (gnome-settings-daemon:14533): DEBUG: GsdFontPlugin initializing
** (gnome-settings-daemon:14533): DEBUG: Activating font plugin
** (gnome-settings-daemon:14533): DEBUG: Starting font manager
** (gnome-settings-daemon:14533): DEBUG: GnomeSettingsManager: emitting plugin-activated font
** (gnome-settings-daemon:14533): DEBUG: Plugin font: active
** (gnome-settings-daemon:14533): DEBUG: GnomeSettingsModule 0x8179c00 initialising
** (gnome-settings-daemon:14533): DEBUG: Loading /usr/lib/gnome-settings-daemon-2.0/libbackground.so
** (gnome-settings-daemon:14533): DEBUG: Registering GsdBackgroundPlugin
** (gnome-settings-daemon:14533): DEBUG: Creating object of type GsdBackgroundPlugin
** (gnome-settings-daemon:14533): DEBUG: GsdBackgroundPlugin initializing
** (gnome-settings-daemon:14533): DEBUG: Activating background plugin
** (gnome-settings-daemon:14533): DEBUG: Starting background manager
** (gnome-settings-daemon:14533): DEBUG: GnomeSettingsManager: emitting plugin-activated background
** (gnome-settings-daemon:14533): DEBUG: Plugin background: active
** (gnome-settings-daemon:14533): DEBUG: GnomeSettingsModule 0x8179c50 initialising
** (gnome-settings-daemon:14533): DEBUG: Loading /usr/lib/gnome-settings-daemon-2.0/libkeyboard.so
** (gnome-settings-daemon:14533): DEBUG: Registering GsdKeyboardPlugin
** (gnome-settings-daemon:14533): DEBUG: Creating object of type GsdKeyboardPlugin
** (gnome-settings-daemon:14533): DEBUG: GsdKeyboardPlugin initializing
** (gnome-settings-daemon:14533): DEBUG: Activating keyboard plugin
** (gnome-settings-daemon:14533): DEBUG: Starting keyboard manager
The program 'gnome-settings-daemon' received an X Window System error.
This probably reflects a bug in the program.
The error was 'XI_BadClass (invalid Class parameter)'.
  (Details: serial 203 error_code 133 request_code 131 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.)
[1242207651,000,xklavier.c:xkl_engine_start_listen/] 	The backend does not require manual layout management - but it is provided by the application
Program exited with code 01.

Other information:
This is bug #528499 in the Debian BTS [2]. 

I am using x2go [1] to log in remotely into the system. At startup a
windows pops up stating that the gnome-settings-daemon failed to start.
I hope getting the daemon run will solve some switching of keys I
experience and which is reported and discussed in Launchpad already [3].

I tried running it from gdb, but I do not know how to use it properly
and just got this output.

Please provide hints, how I can get you a usefull backtrace.

Reading Debian bug 524992 [3] I also issued the following commands. (But since
they return something different I file a separate report.)

$ # user1
$ gconftool-2 -R /desktop/gnome/peripherals/keyboard/kbd
 layouts = []
 options = []
 model = evdev
$ xprop -root | grep XKB
_XKB_RULES_NAMES_BACKUP(STRING) = "xfree86", "pc105", "de", "", ""
_XKB_RULES_NAMES(STRING) = "xfree86", "pc105", "de", "", ""

Following [4] I think I opened the keyboard manager
(gnome-settings-daemon crash message popped up again

        “Unable to start the settings manager 'gnome-settings-daemon'.
        Without the GNOME settings manager running, some preferences may
        not take effect. This could indicate a problem with Bonobo, or a
        non-GNOME (e.g. KDE) settings manager may already be active and
        conflicting with the GNOME settings manager.”,

but the keyboard manager showed up fine) and set the keyboard to
»Evdev-managed keyboard«. I did not change this setting of a different
user, so s/he has PC-Intl 105. There this command does not return
anything.

$ # user2
$ gconftool-2 -R /desktop/gnome/peripherals/keyboard/kbd
$ xprop -root | grep XKB
_XKB_RULES_NAMES_BACKUP(STRING) = "xfree86", "pc105", "de", "", ""
_XKB_RULES_NAMES(STRING) = "xfree86", "pc105", "de", "", ""

The behavior is the same though for both users.

cat /var/log/Xorg.0.log
[…]
(II) config/hal: Adding input device AT Translated Set 2 keyboard
(**) AT Translated Set 2 keyboard: always reports core events
(**) AT Translated Set 2 keyboard: Device: "/dev/input/event1"
(II) AT Translated Set 2 keyboard: Found keys
(II) AT Translated Set 2 keyboard: Configuring as keyboard
(II) XINPUT: Adding extended input device "AT Translated Set 2
keyboard" (type: KEYBOARD)
(**) Option "xkb_rules" "evdev"
(**) Option "xkb_model" "pc105"
(**) Option "xkb_layout" "de"
(**) Option "xkb_variant" "nodeadkeys"
(**) Option "xkb_options" "lv3:ralt_switch"
[…]


Please tell me, if I can provide more information or how I can get
better debug output.


Thanks,

Paul


[2] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=528499
[3] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=524992
[4] https://bugs.launchpad.net/ubuntu/+source/metacity/+bug/289918
Comment 1 Jens Granseuer 2009-05-24 18:15:02 UTC
I strongly suspect this is bug 569567.

*** This bug has been marked as a duplicate of 569567 ***
Comment 2 Paul Menzel 2009-06-03 08:20:41 UTC
Dear Jens,


I am sorry, but I can still reproduce this bug with gnome-settings 2.26.1.


(gdb) run --no-daemon --debug --sync
Starting program: /usr/bin/gnome-settings-daemon --no-daemon --debug --sync
[Thread debugging using libthread_db enabled]
[New Thread 0xf71f3710 (LWP 4194)]
** (gnome-settings-daemon:4194): DEBUG: Successfully connected to D-Bus
** (gnome-settings-daemon:4194): DEBUG: Starting settings manager
** (gnome-settings-daemon:4194): DEBUG: Loading settings plugins from dir: /usr/lib/gnome-settings-daemon-2.0/
** (gnome-settings-daemon:4194): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/dummy.gnome-settings-plugin
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsPluginInfo: name='Dummy' file='/usr/lib/gnome-settings-daemon-2.0/dummy.gnome-settings-plugin' location='dummy'
** (gnome-settings-daemon:4194): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/media-keys.gnome-settings-plugin
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsPluginInfo: name='Medientasten' file='/usr/lib/gnome-settings-daemon-2.0/media-keys.gnome-settings-plugin' location='media-keys'
** (gnome-settings-daemon:4194): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/keybindings.gnome-settings-plugin
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsPluginInfo: name='Tastenkürzel' file='/usr/lib/gnome-settings-daemon-2.0/keybindings.gnome-settings-plugin' location='keybindings'
** (gnome-settings-daemon:4194): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/xrandr.gnome-settings-plugin
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsPluginInfo: name='XRandR' file='/usr/lib/gnome-settings-daemon-2.0/xrandr.gnome-settings-plugin' location='xrandr'
** (gnome-settings-daemon:4194): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/typing-break.gnome-settings-plugin
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsPluginInfo: name='Tipppause' file='/usr/lib/gnome-settings-daemon-2.0/typing-break.gnome-settings-plugin' location='typing-break'
** (gnome-settings-daemon:4194): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/background.gnome-settings-plugin
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsPluginInfo: name='Hintergrund' file='/usr/lib/gnome-settings-daemon-2.0/background.gnome-settings-plugin' location='background'
** (gnome-settings-daemon:4194): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/mouse.gnome-settings-plugin
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsPluginInfo: name='Maus' file='/usr/lib/gnome-settings-daemon-2.0/mouse.gnome-settings-plugin' location='mouse'
** (gnome-settings-daemon:4194): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/xsettings.gnome-settings-plugin
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsPluginInfo: name='X-Einstellungen' file='/usr/lib/gnome-settings-daemon-2.0/xsettings.gnome-settings-plugin' location='xsettings'
** (gnome-settings-daemon:4194): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/sound.gnome-settings-plugin
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsPluginInfo: name='Sound' file='/usr/lib/gnome-settings-daemon-2.0/sound.gnome-settings-plugin' location='sound'
** (gnome-settings-daemon:4194): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/a11y-keyboard.gnome-settings-plugin
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsPluginInfo: name='Barrierefreie Tastatur' file='/usr/lib/gnome-settings-daemon-2.0/a11y-keyboard.gnome-settings-plugin' location='a11y-keyboard'
** (gnome-settings-daemon:4194): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/housekeeping.gnome-settings-plugin
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsPluginInfo: name='Housekeeping' file='/usr/lib/gnome-settings-daemon-2.0/housekeeping.gnome-settings-plugin' location='housekeeping'
** (gnome-settings-daemon:4194): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/keyboard.gnome-settings-plugin
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsPluginInfo: name='Tastatur' file='/usr/lib/gnome-settings-daemon-2.0/keyboard.gnome-settings-plugin' location='keyboard'
** (gnome-settings-daemon:4194): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/clipboard.gnome-settings-plugin
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsPluginInfo: name='Zwischenablage' file='/usr/lib/gnome-settings-daemon-2.0/clipboard.gnome-settings-plugin' location='clipboard'
** (gnome-settings-daemon:4194): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/xrdb.gnome-settings-plugin
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsPluginInfo: name='X-Ressourcendatenbank' file='/usr/lib/gnome-settings-daemon-2.0/xrdb.gnome-settings-plugin' location='xrdb'
** (gnome-settings-daemon:4194): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/screensaver.gnome-settings-plugin
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsPluginInfo: name='Bildschirmschoner' file='/usr/lib/gnome-settings-daemon-2.0/screensaver.gnome-settings-plugin' location='screensaver'
** (gnome-settings-daemon:4194): DEBUG: Loading plugin: /usr/lib/gnome-settings-daemon-2.0/font.gnome-settings-plugin
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsPluginInfo: name='Schrift' file='/usr/lib/gnome-settings-daemon-2.0/font.gnome-settings-plugin' location='font'
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsModule 0x9c8ebb8 initialising
** (gnome-settings-daemon:4194): DEBUG: Loading /usr/lib/gnome-settings-daemon-2.0/libxrandr.so
** (gnome-settings-daemon:4194): DEBUG: Registering GsdXrandrPlugin
** (gnome-settings-daemon:4194): DEBUG: Creating object of type GsdXrandrPlugin
** (gnome-settings-daemon:4194): DEBUG: GsdXrandrPlugin initializing
** (gnome-settings-daemon:4194): DEBUG: Activating xrandr plugin
** (gnome-settings-daemon:4194): DEBUG: Starting xrandr manager

** (gnome-settings-daemon:4194): WARNING **: Unable to start xrandr manager: Unbehandelter X Fehler beim Abfragen der Bildschirmgrößen
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsManager: emitting plugin-activated xrandr
** (gnome-settings-daemon:4194): DEBUG: Plugin xrandr: active
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsModule 0x9c8ec28 initialising
** (gnome-settings-daemon:4194): DEBUG: Loading /usr/lib/gnome-settings-daemon-2.0/libxsettings.so
** (gnome-settings-daemon:4194): DEBUG: Registering GnomeXSettingsPlugin
** (gnome-settings-daemon:4194): DEBUG: Creating object of type GnomeXSettingsPlugin
** (gnome-settings-daemon:4194): DEBUG: GnomeXSettingsPlugin initializing
** (gnome-settings-daemon:4194): DEBUG: Activating xsettings plugin
** (gnome-settings-daemon:4194): DEBUG: Starting xsettings manager
[New Thread 0xf6f99b90 (LWP 4257)]
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsManager: emitting plugin-activated xsettings
** (gnome-settings-daemon:4194): DEBUG: Plugin xsettings: active
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsModule 0x9c8ec78 initialising
** (gnome-settings-daemon:4194): DEBUG: Loading /usr/lib/gnome-settings-daemon-2.0/libfont.so
** (gnome-settings-daemon:4194): DEBUG: Registering GsdFontPlugin
** (gnome-settings-daemon:4194): DEBUG: Creating object of type GsdFontPlugin
** (gnome-settings-daemon:4194): DEBUG: GsdFontPlugin initializing
** (gnome-settings-daemon:4194): DEBUG: Activating font plugin
** (gnome-settings-daemon:4194): DEBUG: Starting font manager
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsManager: emitting plugin-activated font
** (gnome-settings-daemon:4194): DEBUG: Plugin font: active
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsModule 0x9c8ecc8 initialising
** (gnome-settings-daemon:4194): DEBUG: Loading /usr/lib/gnome-settings-daemon-2.0/libsound.so
** (gnome-settings-daemon:4194): DEBUG: Registering GsdSoundPlugin
** (gnome-settings-daemon:4194): DEBUG: Creating object of type GsdSoundPlugin
** (gnome-settings-daemon:4194): DEBUG: GsdSoundPlugin initializing
** (gnome-settings-daemon:4194): DEBUG: Activating sound plugin
** (gnome-settings-daemon:4194): DEBUG: Starting sound manager
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsManager: emitting plugin-activated sound
** (gnome-settings-daemon:4194): DEBUG: Plugin sound: active
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsModule 0x9c8ed18 initialising
** (gnome-settings-daemon:4194): DEBUG: Loading /usr/lib/gnome-settings-daemon-2.0/libkeyboard.so
** (gnome-settings-daemon:4194): DEBUG: Registering GsdKeyboardPlugin
** (gnome-settings-daemon:4194): DEBUG: Creating object of type GsdKeyboardPlugin
** (gnome-settings-daemon:4194): DEBUG: GsdKeyboardPlugin initializing
** (gnome-settings-daemon:4194): DEBUG: Activating keyboard plugin
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsManager: emitting plugin-activated keyboard
** (gnome-settings-daemon:4194): DEBUG: Plugin keyboard: active
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsModule 0x9c8ed68 initialising
** (gnome-settings-daemon:4194): DEBUG: Loading /usr/lib/gnome-settings-daemon-2.0/liba11y-keyboard.so
** (gnome-settings-daemon:4194): DEBUG: Registering GsdA11yKeyboardPlugin
** (gnome-settings-daemon:4194): DEBUG: Creating object of type GsdA11yKeyboardPlugin
** (gnome-settings-daemon:4194): DEBUG: GsdA11yKeyboardPlugin initializing
** (gnome-settings-daemon:4194): DEBUG: Activating a11y_keyboard plugin
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsManager: emitting plugin-activated a11y-keyboard
** (gnome-settings-daemon:4194): DEBUG: Plugin a11y-keyboard: active
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsModule 0x9c8edb8 initialising
** (gnome-settings-daemon:4194): DEBUG: Loading /usr/lib/gnome-settings-daemon-2.0/libmouse.so
** (gnome-settings-daemon:4194): DEBUG: Registering GsdMousePlugin
** (gnome-settings-daemon:4194): DEBUG: Creating object of type GsdMousePlugin
** (gnome-settings-daemon:4194): DEBUG: GsdMousePlugin initializing
** (gnome-settings-daemon:4194): DEBUG: Activating mouse plugin
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsManager: emitting plugin-activated mouse
** (gnome-settings-daemon:4194): DEBUG: Plugin mouse: active
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsModule 0x9c8ee28 initialising
** (gnome-settings-daemon:4194): DEBUG: Loading /usr/lib/gnome-settings-daemon-2.0/libkeybindings.so
** (gnome-settings-daemon:4194): DEBUG: Registering GsdKeybindingsPlugin
** (gnome-settings-daemon:4194): DEBUG: Creating object of type GsdKeybindingsPlugin
** (gnome-settings-daemon:4194): DEBUG: GsdKeybindingsPlugin initializing
** (gnome-settings-daemon:4194): DEBUG: Activating keybindings plugin
** (gnome-settings-daemon:4194): DEBUG: Starting keybindings manager
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsManager: emitting plugin-activated keybindings
** (gnome-settings-daemon:4194): DEBUG: Plugin keybindings: active
** (gnome-settings-daemon:4194): DEBUG: Plugin xrdb: inactive
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsModule 0x9c8ee78 initialising
** (gnome-settings-daemon:4194): DEBUG: Loading /usr/lib/gnome-settings-daemon-2.0/libbackground.so
** (gnome-settings-daemon:4194): DEBUG: Registering GsdBackgroundPlugin
** (gnome-settings-daemon:4194): DEBUG: Creating object of type GsdBackgroundPlugin
** (gnome-settings-daemon:4194): DEBUG: GsdBackgroundPlugin initializing
** (gnome-settings-daemon:4194): DEBUG: Activating background plugin
** (gnome-settings-daemon:4194): DEBUG: Starting background manager
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsManager: emitting plugin-activated background
** (gnome-settings-daemon:4194): DEBUG: Plugin background: active
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsModule 0x9c8ed90 initialising
** (gnome-settings-daemon:4194): DEBUG: Loading /usr/lib/gnome-settings-daemon-2.0/libmedia-keys.so
** (gnome-settings-daemon:4194): DEBUG: Registering GsdMediaKeysPlugin
** (gnome-settings-daemon:4194): DEBUG: Creating object of type GsdMediaKeysPlugin
** (gnome-settings-daemon:4194): DEBUG: GsdMediaKeysPlugin initializing
** (gnome-settings-daemon:4194): DEBUG: Activating media_keys plugin
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsManager: emitting plugin-activated media-keys
** (gnome-settings-daemon:4194): DEBUG: Plugin media-keys: active
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsModule 0x9c8ec50 initialising
** (gnome-settings-daemon:4194): DEBUG: Loading /usr/lib/gnome-settings-daemon-2.0/libclipboard.so
** (gnome-settings-daemon:4194): DEBUG: Registering GsdClipboardPlugin
** (gnome-settings-daemon:4194): DEBUG: Creating object of type GsdClipboardPlugin
** (gnome-settings-daemon:4194): DEBUG: GsdClipboardPlugin initializing
** (gnome-settings-daemon:4194): DEBUG: Activating clipboard plugin
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsManager: emitting plugin-activated clipboard
** (gnome-settings-daemon:4194): DEBUG: Plugin clipboard: active
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsModule 0x9c8eb90 initialising
** (gnome-settings-daemon:4194): DEBUG: Loading /usr/lib/gnome-settings-daemon-2.0/libscreensaver.so
** (gnome-settings-daemon:4194): DEBUG: Registering GsdScreensaverPlugin
** (gnome-settings-daemon:4194): DEBUG: Creating object of type GsdScreensaverPlugin
** (gnome-settings-daemon:4194): DEBUG: GsdScreensaverPlugin initializing
** (gnome-settings-daemon:4194): DEBUG: Activating screensaver plugin
** (gnome-settings-daemon:4194): DEBUG: Starting screensaver manager
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsManager: emitting plugin-activated screensaver
** (gnome-settings-daemon:4194): DEBUG: Plugin screensaver: active
** (gnome-settings-daemon:4194): DEBUG: Plugin dummy: inactive
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsModule 0x9c8eb40 initialising
** (gnome-settings-daemon:4194): DEBUG: Loading /usr/lib/gnome-settings-daemon-2.0/libtyping-break.so
** (gnome-settings-daemon:4194): DEBUG: Registering GsdTypingBreakPlugin
** (gnome-settings-daemon:4194): DEBUG: Creating object of type GsdTypingBreakPlugin
** (gnome-settings-daemon:4194): DEBUG: GsdTypingBreakPlugin initializing
** (gnome-settings-daemon:4194): DEBUG: Activating typing_break plugin
** (gnome-settings-daemon:4194): DEBUG: Starting typing_break manager
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsManager: emitting plugin-activated typing-break
** (gnome-settings-daemon:4194): DEBUG: Plugin typing-break: active
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsModule 0x9c8eac8 initialising
** (gnome-settings-daemon:4194): DEBUG: Loading /usr/lib/gnome-settings-daemon-2.0/libhousekeeping.so
** (gnome-settings-daemon:4194): DEBUG: Registering GsdHousekeepingPlugin
** (gnome-settings-daemon:4194): DEBUG: Creating object of type GsdHousekeepingPlugin
** (gnome-settings-daemon:4194): DEBUG: GsdHousekeepingPlugin initializing
** (gnome-settings-daemon:4194): DEBUG: Activating housekeeping plugin
** (gnome-settings-daemon:4194): DEBUG: Starting housekeeping manager
** (gnome-settings-daemon:4194): DEBUG: housekeeping: will tidy up in 2 minutes
** (gnome-settings-daemon:4194): DEBUG: GnomeSettingsManager: emitting plugin-activated housekeeping
** (gnome-settings-daemon:4194): DEBUG: Plugin housekeeping: active
** (gnome-settings-daemon:4194): DEBUG: Starting keyboard manager
The program 'gnome-settings-daemon' received an X Window System error.
This probably reflects a bug in the program.
The error was 'XI_BadClass (invalid Class parameter)'.
  (Details: serial 222 error_code 133 request_code 131 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.)
[1244016504,000,xklavier.c:xkl_engine_start_listen/] 	The backend does not require manual layout management - but it is provided by the application
Program exited with code 01.


This looks the same as before.


Thanks,

Paul
Comment 3 Jens Granseuer 2009-06-03 16:51:19 UTC
Hm. In that case, please

(gdb) break gdk_x_error

and post the output of

(gdb) bt full

when you run into that breakpoint. Also, your .xsession-errors probably has a slightly more readable description of the X error that might be helpful. Thanks.
Comment 4 Paul Menzel 2009-06-04 08:14:29 UTC
Dear Jens,


(In reply to comment #3)
> Hm. In that case, please
> 
> (gdb) break gdk_x_error

Before or after issuing run? (I tried both.)

> and post the output of
> 
> (gdb) bt full
> 
> when you run into that breakpoint.


Bad news, I get always »No stack«.

(gdb) run
Starting program: /usr/bin/gnome-settings-daemon 
[Thread debugging using libthread_db enabled]
[New Thread 0xf71d6710 (LWP 3857)]

** (gnome-settings-daemon:3860): WARNING **: Unable to start xrandr manager: unhandled X error while getting the range of screen sizes

Program exited normally.
(gdb) The program 'gnome-settings-daemon' received an X Window System error.
This probably reflects a bug in the program.
The error was 'XI_BadClass (invalid Class parameter)'.
  (Details: serial 154 error_code 133 request_code 131 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.)
break gdk_x_error
Breakpoint 1 at 0xf77f8dfd: file /build/buildd-gtk+2.0_2.16.2-1-i386-bURDgj/gtk+2.0-2.16.2/gdk/x11/gdkmain-x11.c, line 614.
(gdb) bt full
No stack.
(gdb) run
Starting program: /usr/bin/gnome-settings-daemon 
[Thread debugging using libthread_db enabled]
[New Thread 0xf7274710 (LWP 5137)]

** (gnome-settings-daemon:5225): WARNING **: Unable to start xrandr manager: unhandled X error while getting the range of screen sizes

Program exited normally.
(gdb) The program 'gnome-settings-daemon' received an X Window System error.
This probably reflects a bug in the program.
The error was 'XI_BadClass (invalid Class parameter)'.
  (Details: serial 154 error_code 133 request_code 131 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.)
bt full
No stack.

Is this because the program says it exited normally?

> Also, your .xsession-errors probably has a
> slightly more readable description of the X error that might be helpful.

I deleted .xsession-errors before logging in (it did have something written to it but not related to gnome-settings-daemon) and started gnome-settings-daemon afterwards. The file was not created and therefore I assume no errors occured to be logged into this file.

Do you have another idea, what I can try?


Bests,

Paul
Comment 5 Jens Granseuer 2009-06-04 20:56:13 UTC
(In reply to comment #4)
> > (gdb) break gdk_x_error
> 
> Before or after issuing run? (I tried both.)

Before.

> Bad news, I get always »No stack«.
[...]
> Is this because the program says it exited normally?

Yes. If you get this message it means the breakpoint didn't trigger an the program exited due to the X error. My first guess would be that you didn't enter the break command correctly (it doesn't show in your trace so that's only a guess).
Comment 6 Paul Menzel 2009-06-04 21:10:29 UTC
Dear Jens,


thanks for your answer.


(In reply to comment #5)
> (In reply to comment #4)
> > > (gdb) break gdk_x_error
> > 
> > Before or after issuing run? (I tried both.)
> 
> Before.
> 
> > Bad news, I get always »No stack«.
> [...]
> > Is this because the program says it exited normally?
> 
> Yes. If you get this message it means the breakpoint didn't trigger an the
> program exited due to the X error. My first guess would be that you didn't
> enter the break command correctly (it doesn't show in your trace so that's
> only a guess).

Ok, I tried this before. But just to make sure, I did not do anything incorrectly, here is the whole log.

$ LANG=C gdb gnome-settings-daemon
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
(no debugging symbols found)
(gdb) break gdk_x_error  
Function "gdk_x_error" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y

Breakpoint 1 (gdk_x_error) pending.
(gdb) run
Starting program: /usr/bin/gnome-settings-daemon 
[Thread debugging using libthread_db enabled]
[New Thread 0xf71ec710 (LWP 12622)]

** (gnome-settings-daemon:12681): WARNING **: Unable to start xrandr manager: unhandled X error while getting the range of screen sizes

Program exited normally.
(gdb) The program 'gnome-settings-daemon' received an X Window System error.
This probably reflects a bug in the program.
The error was 'XI_BadClass (invalid Class parameter)'.
  (Details: serial 142 error_code 133 request_code 131 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.)
(gdb) bt full
No stack.
(gdb)


Bests,

Paul
Comment 7 Jens Granseuer 2009-06-04 21:14:22 UTC
That should be fine. Maybe you don't have debugging symbols for GDK/GTK+ installed? That would explain that behaviour as well.
Comment 8 Paul Menzel 2009-06-04 21:26:39 UTC
(In reply to comment #7)
> That should be fine. Maybe you don't have debugging symbols for GDK/GTK+
> installed? That would explain that behaviour as well.

Do you know what symbols I need specifically?

$ LANG=C dpkg -l libgtk2.0-0-dbg
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name           Version        Description
+++-==============-==============-============================================
ii  libgtk2.0-0-db 2.16.2-1       The GTK+ libraries and debugging symbols
$ LANG=C dpkg -l gnome-dbg
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name           Version        Description
+++-==============-==============-============================================
ii  gnome-dbg      1:2.24.3~2     debugging symbols for the GNOME desktop envi
Comment 9 Jens Granseuer 2009-06-05 15:46:35 UTC
(In reply to comment #8)
> ii  libgtk2.0-0-db 2.16.2-1       The GTK+ libraries and debugging symbols

That should suffice if the version is correct (and if your distro doesn't split the gtk package in some way). No other ideas at this point, sorry.
Comment 10 Jens Granseuer 2009-06-07 13:00:02 UTC
*** Bug 585054 has been marked as a duplicate of this bug. ***
Comment 11 Paul Menzel 2009-06-07 13:12:01 UTC
Ok, sorry for submitting an extra report for this.

I am on it to get the debugging information. But I have not succeeded yet. (See the report in the Debian BTS for more details [1].)


[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=528499
Comment 12 Paul Menzel 2009-06-08 20:34:57 UTC
(In reply to comment #11)

[…]

> I am on it to get the debugging information. But I have not succeeded yet. (See
> the report in the Debian BTS for more details [1].)
> 
> [1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=528499

Could you give me a command, how I can check if the debugging symbols are compiled in? Is this output enough to verify this [2]?

$ nm /usr/bin/gnome-settings-daemon
08051188 d _DYNAMIC
080512a4 d _GLOBAL_OFFSET_TABLE_
0804eec4 R _IO_stdin_used
         w _Jv_RegisterClasses
08051178 d __CTOR_END__
08051174 d __CTOR_LIST__
08051180 d __DTOR_END__
0805117c d __DTOR_LIST__
08050170 r __FRAME_END__
08051184 d __JCR_END__
08051184 d __JCR_LIST__
0804fd20 r __PRETTY_FUNCTION__.10033
0804fd60 r __PRETTY_FUNCTION__.10067
0804fda0 r __PRETTY_FUNCTION__.10098
0804fde0 r __PRETTY_FUNCTION__.10120
0804fe20 r __PRETTY_FUNCTION__.10143
0804fe60 r __PRETTY_FUNCTION__.10164
0804fea0 r __PRETTY_FUNCTION__.10185
0804fee0 r __PRETTY_FUNCTION__.10206
0804ff20 r __PRETTY_FUNCTION__.10227
0804ff60 r __PRETTY_FUNCTION__.10248
0804ffa0 r __PRETTY_FUNCTION__.10269
0804ffe0 r __PRETTY_FUNCTION__.10292
0804f200 r __PRETTY_FUNCTION__.12140
0804f280 r __PRETTY_FUNCTION__.12185
0804f740 r __PRETTY_FUNCTION__.12604
0804f086 r __PRETTY_FUNCTION__.40872
0805001c r __PRETTY_FUNCTION__.8579
0804f7d4 r __PRETTY_FUNCTION__.8585
0804f820 r __PRETTY_FUNCTION__.8608
080500c8 r __PRETTY_FUNCTION__.8624
0804f880 r __PRETTY_FUNCTION__.9654
0804fb40 r __PRETTY_FUNCTION__.9868
0804fb8d r __PRETTY_FUNCTION__.9901
08051550 A __bss_start
080514c0 D __data_start
0804ee70 t __do_global_ctors_aux
0804b430 t __do_global_dtors_aux
080514c4 d __dso_handle
         U __errno_location@@GLIBC_2.0
         w __gmon_start__
0804ee6a t __i686.get_pc_thunk.bx
08051174 d __init_array_end
08051174 d __init_array_start
0804ee00 T __libc_csu_fini
0804ee10 T __libc_csu_init
         U __libc_start_main@@GLIBC_2.0
0804e129 t _activate_plugin
0804dbba t _deactivate_plugin
08051550 A _edata
080515b0 A _end
0804ee9c T _fini
0804eec0 R _fp_hw
0804abbc T _init
0804c6ed t _load_all
0804c5d7 t _load_dir
0804c3e8 t _load_file
0804ca2f t _set_settings_prefix
0804b400 T _start
0804c77f t _unload_all
0804c752 t _unload_plugin
0804b4e5 t acquire_name_on_proxy
         U bind_textdomain_codeset@@GLIBC_2.2
         U bindtextdomain@@GLIBC_2.0
0804b642 t bus_message_handler
0804b726 t bus_register
         U chdir@@GLIBC_2.0
         U close@@GLIBC_2.0
0804c2b1 t compare_location
0804c302 t compare_priority
08051554 b completed.5723
0804bb42 t daemon_detach
08051568 b daemon_pipe_fds
0804ba45 t daemon_start
0804bba4 t daemon_terminate_parent
080514c0 W data_start
         U dbus_connection_add_filter
         U dbus_connection_set_exit_on_disconnect
         U dbus_g_bus_get
         U dbus_g_connection_get_connection
         U dbus_g_connection_register_g_object
         U dbus_g_connection_unref
         U dbus_g_object_register_marshaller
         U dbus_g_object_type_install_info
         U dbus_g_proxy_add_signal
         U dbus_g_proxy_call
         U dbus_g_proxy_connect_signal
         U dbus_g_proxy_new_for_name
0804f2e0 r dbus_glib_gnome_settings_manager_methods
0804f3ec R dbus_glib_gnome_settings_manager_object_info
0804bf30 T dbus_glib_marshal_gnome_settings_manager_BOOLEAN__POINTER
0804c015 T dbus_glib_marshal_gnome_settings_manager_BOOLEAN__STRING_POINTER
         U dbus_message_is_signal
08051564 b debug
0804d5d2 t debug_info
08051558 b dtor_idx.5725
0804d0ba t dummy
080514e0 d entries
         U exit@@GLIBC_2.0
         U fcntl@@GLIBC_2.0
         U fork@@GLIBC_2.0
0804b490 t frame_dummy
         U g_assertion_message_expr
         U g_build_filename
         U g_cclosure_marshal_VOID__STRING
         U g_cclosure_marshal_VOID__VOID
08051584 b g_define_type_id__volatile.12244
08051594 b g_define_type_id__volatile.8558
080515ac b g_define_type_id__volatile.8561
080515a4 b g_define_type_id__volatile.9639
         U g_dir_close
         U g_dir_open
         U g_dir_read_name
         U g_error_free
         U g_file_test
         U g_free
         U g_getenv
         U g_intern_static_string
         U g_io_add_watch
         U g_io_channel_set_buffered
         U g_io_channel_set_encoding
         U g_io_channel_unix_new
         U g_io_channel_unref
         U g_key_file_free
         U g_key_file_get_integer
         U g_key_file_get_locale_string
         U g_key_file_get_string
         U g_key_file_get_string_list
         U g_key_file_has_key
         U g_key_file_load_from_file
         U g_key_file_new
         U g_log
         U g_log_default_handler
         U g_log_set_default_handler
         U g_module_build_path
         U g_module_close
         U g_module_error
         U g_module_open
         U g_module_supported
         U g_module_symbol
         U g_object_add_weak_pointer
         U g_object_class_install_property
         U g_object_new
         U g_object_ref
         U g_object_set
         U g_object_unref
0804c1af t g_once_init_enter
0804d08f t g_once_init_enter
0804d28b t g_once_init_enter
0804e984 t g_once_init_enter
         U g_once_init_enter_impl
         U g_once_init_leave
         U g_option_context_add_group
         U g_option_context_add_main_entries
         U g_option_context_free
         U g_option_context_new
         U g_option_context_parse
         U g_param_spec_string
         U g_path_get_dirname
         U g_quark_from_static_string
         U g_return_if_fail_warning
         U g_set_error
         U g_signal_connect_data
         U g_signal_emit
         U g_signal_new
         U g_slist_find_custom
         U g_slist_foreach
         U g_slist_free
         U g_slist_prepend
         U g_slist_sort
         U g_str_has_suffix
         U g_strdup
         U g_strdup_printf
         U g_strerror
         U g_strfreev
         U g_thread_init
08051550 B g_threads_got_initialized
         U g_type_check_class_cast
         U g_type_check_instance_cast
         U g_type_check_instance_is_a
         U g_type_class_add_private
         U g_type_class_peek
         U g_type_class_peek_parent
         U g_type_init
         U g_type_instance_get_private
         U g_type_module_get_type
         U g_type_module_set_name
         U g_type_module_unuse
         U g_type_module_use
         U g_type_name
         U g_type_register_static_simple
         U g_value_get_string
         U g_value_peek_pointer
         U g_value_set_boolean
         U g_value_set_string
         U gconf_client_add_dir
         U gconf_client_get_bool
         U gconf_client_get_default
         U gconf_client_get_int
         U gconf_client_notify_add
         U gconf_client_notify_remove
         U gconf_client_remove_dir
0805155c b gconf_prefix
         U gconf_value_get_bool
0804b4b4 t get_bus_proxy
0804b681 t get_session_bus
0804c7c7 T gnome_settings_manager_awake
0804ccb2 t gnome_settings_manager_class_init
0804c10c t gnome_settings_manager_class_intern_init
0804cbe1 t gnome_settings_manager_constructor
0804cc68 t gnome_settings_manager_dispose
0804c1da T gnome_settings_manager_error_quark
0804ce45 t gnome_settings_manager_finalize
0804cb22 t gnome_settings_manager_get_property
0804c12f T gnome_settings_manager_get_type
0804ce21 t gnome_settings_manager_init
0804cf50 T gnome_settings_manager_new
08051580 b gnome_settings_manager_parent_class
0804ca61 t gnome_settings_manager_set_property
0804c8b4 T gnome_settings_manager_start
0804c980 T gnome_settings_manager_start_with_settings_prefix
0804c9bc T gnome_settings_manager_stop
0804ed29 t gnome_settings_module_class_init
0804e8dc t gnome_settings_module_class_intern_init
0804ecb9 t gnome_settings_module_finalize
0804eba2 T gnome_settings_module_get_path
0804e8ff T gnome_settings_module_get_type
0804ec8e t gnome_settings_module_init
0804e9af t gnome_settings_module_load
0804ed7c T gnome_settings_module_new
0804ec29 T gnome_settings_module_new_object
080515a8 b gnome_settings_module_parent_class
0804eb3b t gnome_settings_module_unload
0804d0dd T gnome_settings_plugin_activate
0804d0bf t gnome_settings_plugin_class_init
0804cfec t gnome_settings_plugin_class_intern_init
0804d161 T gnome_settings_plugin_deactivate
0804d00f T gnome_settings_plugin_get_type
0804e1d4 T gnome_settings_plugin_info_activate
0804d4bc t gnome_settings_plugin_info_class_init
0804d1e8 t gnome_settings_plugin_info_class_intern_init
0804dbef T gnome_settings_plugin_info_deactivate
0804d61c t gnome_settings_plugin_info_fill_from_file
0804d2b6 t gnome_settings_plugin_info_finalize
0804e5a9 T gnome_settings_plugin_info_get_authors
0804e6bd T gnome_settings_plugin_info_get_copyright
0804e51f T gnome_settings_plugin_info_get_description
0804e36b T gnome_settings_plugin_info_get_enabled
0804e747 T gnome_settings_plugin_info_get_location
0804e495 T gnome_settings_plugin_info_get_name
0804e7d1 T gnome_settings_plugin_info_get_priority
0804d20b T gnome_settings_plugin_info_get_type
0804e633 T gnome_settings_plugin_info_get_website
0804d59b t gnome_settings_plugin_info_init
0804e2b5 T gnome_settings_plugin_info_is_active
0804e3ff T gnome_settings_plugin_info_is_available
0804db6a T gnome_settings_plugin_info_new_from_file
080515a0 b gnome_settings_plugin_info_parent_class
0804dadf T gnome_settings_plugin_info_set_enabled_key_name
0804e85b T gnome_settings_plugin_info_set_priority
0804d0d8 t gnome_settings_plugin_init
08051590 b gnome_settings_plugin_parent_class
0804ba07 t gsd_log_default_handler
         U gtk_get_option_group
         U gtk_init_check
         U gtk_main
         U gtk_main_quit
0804dcba t load_plugin_module
0804bcc4 T main
08051588 b manager_object
0804c201 t maybe_activate_plugin
08051560 b no_daemon
0804c32e t on_plugin_activated
0804c38b t on_plugin_deactivated
0804b7c3 t on_session_over
0804b7db t on_term_signal
0804b7fa t on_term_signal_pipe_closed
         U open@@GLIBC_2.0
0804bbdf t parse_args
         U pipe@@GLIBC_2.0
0804daad t plugin_enabled_cb
         U read@@GLIBC_2.0
0804c7fd t register_manager
0805158c b ret.12259
0804b93a t set_session_over_handler
         U setlocale@@GLIBC_2.0
         U setsid@@GLIBC_2.0
         U signal@@GLIBC_2.0
08051578 b signals
08051598 b signals
         U strcmp@@GLIBC_2.0
08051570 b term_signal_pipe_fds
         U textdomain@@GLIBC_2.0
0804b82d t watch_for_term_signal
         U write@@GLIBC_2.0


Bests,

Paul


[2] http://wiki.debian.org/HowToGetABacktrace
Comment 13 Paul Menzel 2009-06-11 08:02:36 UTC
Dear GNOME hackers,


I got some help on IRC irc.gnome.org/#bugs from seb128 and on irc.freenode.net #gdb from xdje. The problem is not solved, but I will try to summarize the results here.

The main problem seems to be that gdb does not find the debug symbol or the gdk_x_error. So how can I check if there is a breakpoint gdk_x_error?

seb128 instructed me to do some tests and his conclusion was that the debugging symbols are actually available.

$ objdump -x /usr/lib/libgtk-x11-2.0.so.0 | grep debug
 23 .gnu_debuglink 00000020  00000000  00000000  003b05f0  2**0

xdje helped in checking for debug symbols and gave the useful hint to try `set verbose on` which results in gdb showing the libraries it reads in the symbols from.

(gdb) break gdk_x_error
Function "gdk_x_error" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y

Breakpoint 1 (gdk_x_error) pending.
(gdb) run --sync
Starting program: /usr/bin/gnome-settings-daemon --sync
Reading symbols from /lib/ld-linux.so.2...Reading symbols from /usr/lib/debug/lib/ld-2.9.so...done.
Reading in symbols for rtld.c...done.
done.
Reading symbols from system-supplied DSO at 0xf7eea000...done.
Reading in symbols for dl-debug.c...done.
Reading symbols from /usr/lib/libgtk-x11-2.0.so.0...Reading symbols from /usr/lib/debug/usr/lib/libgtk-x11-2.0.so.0.1600.2...done.
done.
Reading symbols from /usr/lib/libgconf-2.so.4...done.
Reading symbols from /usr/lib/libgmodule-2.0.so.0...Reading symbols from /usr/lib/debug/usr/lib/libgmodule-2.0.so.0.2000.3...done.
done.
Reading symbols from /usr/lib/libdbus-glib-1.so.2...done.
Reading symbols from /usr/lib/libdbus-1.so.3...done.
Reading symbols from /usr/lib/libgobject-2.0.so.0...Reading symbols from /usr/lib/debug/usr/lib/libgobject-2.0.so.0.2000.3...done.
done.
Reading symbols from /usr/lib/libglib-2.0.so.0...Reading symbols from /usr/lib/debug/usr/lib/libglib-2.0.so.0.2000.3...done.
done.
Reading symbols from /lib/i686/cmov/libpthread.so.0...Reading symbols from /usr/lib/debug/lib/i686/cmov/libpthread-2.9.so...done.
[Thread debugging using libthread_db enabled]
done.
Reading symbols from /lib/i686/cmov/libc.so.6...Reading symbols from /usr/lib/debug/lib/i686/cmov/libc-2.9.so...done.
done.
Reading symbols from /usr/lib/libgthread-2.0.so.0...Reading symbols from /usr/lib/debug/usr/lib/libgthread-2.0.so.0.2000.3...done.
done.
Reading symbols from /usr/lib/libgdk_pixbuf-2.0.so.0...Reading symbols from /usr/lib/debug/usr/lib/libgdk_pixbuf-2.0.so.0.1600.2...done.
done.
Reading symbols from /usr/lib/libgdk-x11-2.0.so.0...Reading symbols from /usr/lib/debug/usr/lib/libgdk-x11-2.0.so.0.1600.2...done.
Reading in symbols for /build/buildd-gtk+2.0_2.16.2-1-i386-bURDgj/gtk+2.0-2.16.2/gdk/x11/gdkmain-x11.c...done.
Reading in symbols for /tmp/ccOxmgDG.s...done.
done.
Reading symbols from /usr/lib/libpangocairo-1.0.so.0...Reading symbols from /usr/lib/debug/usr/lib/libpangocairo-1.0.so.0.2400.2...done.
done.
Reading symbols from /usr/lib/libX11.so.6...done.
Reading symbols from /usr/lib/libXcomposite.so.1...done.
Reading symbols from /usr/lib/libXdamage.so.1...done.
Reading symbols from /usr/lib/libXfixes.so.3...done.
Reading symbols from /usr/lib/libatk-1.0.so.0...Reading symbols from /usr/lib/debug/usr/lib/libatk-1.0.so.0.2609.1...done.
done.
Reading symbols from /usr/lib/libcairo.so.2...done.
Reading symbols from /usr/lib/libgio-2.0.so.0...Reading symbols from /usr/lib/debug/usr/lib/libgio-2.0.so.0.2000.3...done.
done.
Reading symbols from /usr/lib/libpangoft2-1.0.so.0...Reading symbols from /usr/lib/debug/usr/lib/libpangoft2-1.0.so.0.2400.2...done.
done.
Reading symbols from /usr/lib/libpango-1.0.so.0...Reading symbols from /usr/lib/debug/usr/lib/libpango-1.0.so.0.2400.2...done.
done.
Reading symbols from /usr/lib/libfreetype.so.6...done.
Reading symbols from /usr/lib/libfontconfig.so.1...Reading symbols from /usr/lib/debug/usr/lib/libfontconfig.so.1.3.0...done.
done.
Reading symbols from /lib/i686/cmov/libm.so.6...Reading symbols from /usr/lib/debug/lib/i686/cmov/libm-2.9.so...done.
done.
Reading symbols from /usr/lib/libORBit-2.so.0...done.
Reading symbols from /lib/i686/cmov/librt.so.1...Reading symbols from /usr/lib/debug/lib/i686/cmov/librt-2.9.so...done.
done.
Reading symbols from /lib/i686/cmov/libdl.so.2...Reading symbols from /usr/lib/debug/lib/i686/cmov/libdl-2.9.so...done.
done.
Reading symbols from /usr/lib/libpcre.so.3...done.
Reading symbols from /usr/lib/libXext.so.6...done.
Reading symbols from /usr/lib/libXrender.so.1...done.
Reading symbols from /usr/lib/libXinerama.so.1...done.
Reading symbols from /usr/lib/libXi.so.6...done.
Reading symbols from /usr/lib/libXrandr.so.2...Reading symbols from /usr/lib/debug/usr/lib/libXrandr.so.2.2.0...done.
done.
Reading symbols from /usr/lib/libXcursor.so.1...done.
Reading symbols from /usr/lib/libxcb.so.1...done.
Reading symbols from /usr/lib/libpixman-1.so.0...done.
Reading symbols from /usr/lib/libdirectfb-1.2.so.0...done.
Reading symbols from /usr/lib/libfusion-1.2.so.0...done.
Reading symbols from /usr/lib/libdirect-1.2.so.0...done.
Reading symbols from /usr/lib/libpng12.so.0...done.
Reading symbols from /usr/lib/libxcb-render-util.so.0...done.
Reading symbols from /usr/lib/libxcb-render.so.0...done.
Reading symbols from /usr/lib/libz.so.1...done.
Reading symbols from /lib/libselinux.so.1...done.
Reading symbols from /usr/lib/libexpat.so.1...done.
Reading symbols from /usr/lib/libXau.so.6...done.
Reading symbols from /usr/lib/libXdmcp.so.6...done.
[New Thread 0xf71be710 (LWP 6045)]
Reading symbols from /lib/i686/cmov/libnss_compat.so.2...Reading symbols from /usr/lib/debug/lib/i686/cmov/libnss_compat-2.9.so...done.
done.
Reading symbols from /lib/i686/cmov/libnsl.so.1...Reading symbols from /usr/lib/debug/lib/i686/cmov/libnsl-2.9.so...done.
done.
Reading symbols from /lib/i686/cmov/libnss_nis.so.2...Reading symbols from /usr/lib/debug/lib/i686/cmov/libnss_nis-2.9.so...done.
done.
Reading symbols from /lib/i686/cmov/libnss_files.so.2...Reading symbols from /usr/lib/debug/lib/i686/cmov/libnss_files-2.9.so...done.
done.
Detaching after fork from child process 6200.

Program exited normally.
(gdb) The program 'gnome-settings-daemon' received an X Window System error.
This probably reflects a bug in the program.
The error was 'XI_BadClass (invalid Class parameter)'.
  (Details: serial 211 error_code 133 request_code 131 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.)


Checking some of these files with objdump -x file | grep gdk_x_error did not return anything. xdje suggested to run `ldd /usr/bin/gnome-settings-daemon` and then run objdump -x on the result. He added if those libraries(?) are stripped `objdump -x` does not help much and `readelf -s` should be used instead.


Bests,

Paul
Comment 14 Paul Menzel 2009-06-11 08:09:07 UTC
(In reply to comment #11)

[…]

> I am on it to get the debugging information. But I have not succeeded yet.

[…]

Trying some more I found my the stupid mistake causing the odd behavior. I did not specify `--no-daemon` and seb128 confirmed on IRC that without this option gnome-settings-daemon does not run really under gdb.

So here is the stacktrace.

(gdb) run --sync --no-daemon
Starting program: /usr/bin/gnome-settings-daemon --sync --no-daemon
[Thread debugging using libthread_db enabled]
[New Thread 0xf728b710 (LWP 23599)]
[New Thread 0xf7251b90 (LWP 23601)]

Thread 4146640656 (LWP 23599)

  • #0 gdk_x_error
    at /build/buildd-gtk+2.0_2.16.2-1-i386-bURDgj/gtk+2.0-2.16.2/gdk/x11/gdkmain-x11.c line 614
  • #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 ??
  • #5 ??
  • #6 ??
  • #7 ??
  • #8 ??


Thanks,

Paul
Comment 15 Jens Granseuer 2009-06-11 08:42:12 UTC
Ah, so now we just need to add debugging symbols for libxklavier, libX11, and (I suspect) libXrandr...
Comment 16 Paul Menzel 2009-06-11 09:12:36 UTC
(In reply to comment #15)
> Ah, so now we just need to add debugging symbols for libxklavier, libX11, and
> (I suspect) libXrandr...

seb128 guided me in #bugs. Here is another try.

(gdb) break gdk_x_error
Function "gdk_x_error" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y

Breakpoint 1 (gdk_x_error) pending.
(gdb) run --sync --no-daemon
Starting program: /usr/bin/gnome-settings-daemon --sync --no-daemon
[Thread debugging using libthread_db enabled]
[New Thread 0xf7270710 (LWP 3910)]

Thread 4146530064 (LWP 3910)

  • #0 gdk_x_error
    at /build/buildd-gtk+2.0_2.16.2-1-i386-bURDgj/gtk+2.0-2.16.2/gdk/x11/gdkmain-x11.c line 614
  • #1 _XError
    at ../../src/XlibInt.c line 2924
  • #2 _XReply
    at ../../src/xcb_io.c line 506
  • #3 XRRGetScreenSizeRange
    at ../../src/XrrScreen.c line 228
  • #4 fill_out_screen_info
    at gnome-rr.c line 310
  • #5 screen_info_new
    at gnome-rr.c line 444
  • #6 gnome_rr_screen_new
    at gnome-rr.c line 559
  • #7 gsd_xrandr_manager_start
    at gsd-xrandr-manager.c line 1470
  • #8 impl_activate
    at gsd-xrandr-plugin.c line 78
  • #9 gnome_settings_plugin_activate
    at gnome-settings-plugin.c line 52
  • #10 _activate_plugin
    at gnome-settings-plugin-info.c line 497
  • #11 gnome_settings_plugin_info_activate
    at gnome-settings-plugin-info.c line 520
  • #12 maybe_activate_plugin
    at gnome-settings-manager.c line 94
  • #13 IA__g_slist_foreach
    at /build/buildd-glib2.0_2.20.3-1-i386-o59wJY/glib2.0-2.20.3/glib/gslist.c line 743
  • #14 _load_all
    at gnome-settings-manager.c line 263
  • #15 gnome_settings_manager_start
    at gnome-settings-manager.c line 349
  • #16 main
    at main.c line 478
  • #0 gdk_x_error
    at /build/buildd-gtk+2.0_2.16.2-1-i386-bURDgj/gtk+2.0-2.16.2/gdk/x11/gdkmain-x11.c line 614
  • #1 xkl_process_error
    at xklavier_evt.c line 503
  • #2 _XError
    at ../../src/XlibInt.c line 2924
  • #3 process_responses
    at ../../src/xcb_io.c line 207
  • #4 _XReply
    at ../../src/xcb_io.c line 457
  • #5 XSync
    at ../../src/Sync.c line 48
  • #6 _XSyncFunction
    at ../../src/Synchro.c line 37
  • #7 XSelectExtensionEvent
    from /usr/lib/libXi.so.6
  • #8 xkl_xkb_resume_listen
    at xklavier_xkb.c line 101
  • #9 xkl_engine_resume_listen
    at xklavier.c line 573
  • #10 xkl_engine_start_listen
    at xklavier.c line 187
  • #11 gsd_keyboard_xkb_init
    at gsd-keyboard-xkb.c line 404
  • #12 start_keyboard_idle_cb
    at gsd-keyboard-manager.c line 389
  • #13 g_idle_dispatch
  • #14 IA__g_main_context_dispatch
    at /build/buildd-glib2.0_2.20.3-1-i386-o59wJY/glib2.0-2.20.3/glib/gmain.c line 1814
  • #15 g_main_context_iterate
    at /build/buildd-glib2.0_2.20.3-1-i386-o59wJY/glib2.0-2.20.3/glib/gmain.c line 2445
  • #16 IA__g_main_loop_run
    at /build/buildd-glib2.0_2.20.3-1-i386-o59wJY/glib2.0-2.20.3/glib/gmain.c line 2653
  • #17 IA__gtk_main
    at /build/buildd-gtk+2.0_2.16.2-1-i386-bURDgj/gtk+2.0-2.16.2/gtk/gtkmain.c line 1205
  • #18 main
    at main.c line 489
Continuing.
The program 'gnome-settings-daemon' received an X Window System error.
This probably reflects a bug in the program.
The error was 'XI_BadClass (invalid Class parameter)'.
  (Details: serial 226 error_code 133 request_code 131 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.)
[1244711371,000,xklavier.c:xkl_engine_start_listen/] 	The backend does not require manual layout management - but it is provided by the application
Program exited with code 01.


Thanks for all your patience,

Paul
Comment 17 Jens Granseuer 2009-06-24 19:29:14 UTC
Hm. That looks like a problem in keyboard handling.

Sergey, in the equivalent code for pinting devices there have been quite a few fixes wrt properly handling X servers that don't support the new events/hotplugging/whatnot. Is it possible that you're missing some of those in the libgnomekbd code?
Comment 18 Sebastien Bacher 2009-08-13 13:40:13 UTC
There is a bug similar on https://bugs.launchpad.net/bugs/409621
Comment 19 Sebastien Bacher 2009-08-13 13:41:12 UTC
The Ubuntu submitter uses a freenx server which seems to not handled xrandr calls but those should be trapped no?
Comment 20 Sebastien Bacher 2009-08-13 13:41:52 UTC
There is an another duplicate on https://bugs.launchpad.net/bugs/399758
Comment 21 Chris Coulson 2009-08-14 00:49:04 UTC
In https://bugs.launchpad.net/bugs/399758, an unhandled BadClass error is generated here in libxklavier, in xkl_xkb_resume_listen():

#ifdef HAVE_XINPUT
 if (xkl_engine_priv(engine, features) | XKLF_DEVICE_DISCOVERY) {
  DevicePresence(display, xitype, xiclass);
  XSelectExtensionEvent(display,
          xkl_engine_priv(engine, root_window),
          &xiclass, 1);

There seems to be some similar code in the g-s-d mouse plugin in set_devicepresence_handler(), which works around this issue by querying for the XInputExtension before calling XSelectExtensionEvent:

        if (!supports_xinput_devices ())
                return;

        display = gdk_x11_get_default_xdisplay ();

        gdk_error_trap_push ();
        DevicePresence (display, xi_presence, class_presence);
        XSelectExtensionEvent (display,
                               RootWindow (display, DefaultScreen (display)),
                               &class_presence, 1);

        gdk_flush ();
        if (!gdk_error_trap_pop ())
                gdk_window_add_filter (NULL, devicepresence_filter, manager);

The full backtrace from the reporter is here: http://launchpadlibrarian.net/30290749/gdb-gnome-settings-daemon.txt
Comment 22 Sergey V. Udaltsov 2009-08-16 22:23:09 UTC
Chris, in libxklavier's code, there are lines:

        if (XQueryExtension
            (display, "XInputExtension", &xi_opc,
             &xi_event_type, &xi_error_code)) {
                xkl_debug(150, "XInputExtension found (%d, %d, %d)\n",
                          xi_opc, xi_event_type, xi_error_code);
                xkl_engine_priv(engine, features) |= XKLF_DEVICE_DISCOVERY;

The DevicePresence function is only called if xinput is available (i.e. XKLF_DEVICE_DISCOVERY flag set).

What's the actual story with that X server and XInput? Please try

xdpyinfo -ext XInputExtension
Comment 23 Paul Menzel 2009-08-16 22:40:32 UTC
(In reply to comment #22)
[…]
> What's the actual story with that X server and XInput? Please try
> 
> xdpyinfo -ext XInputExtension

$ xdpyinfo -ext XInputExtension
name of display:    :50.0
version number:    11.0
vendor string:    The X.Org Foundation
vendor release number:    60900000
X.Org version: 6.9.0
maximum request size:  16777212 bytes
motion buffer size:  256
bitmap unit, bit order, padding:    32, LSBFirst, 32
image byte order:    LSBFirst
number of supported pixmap formats:    7
supported pixmap formats:
    depth 1, bits_per_pixel 1, scanline_pad 32
    depth 4, bits_per_pixel 8, scanline_pad 32
    depth 8, bits_per_pixel 8, scanline_pad 32
    depth 15, bits_per_pixel 16, scanline_pad 32
    depth 16, bits_per_pixel 16, scanline_pad 32
    depth 24, bits_per_pixel 32, scanline_pad 32
    depth 32, bits_per_pixel 32, scanline_pad 32
keycode range:    minimum 8, maximum 255
focus:  window 0x1c00004, revert to Parent
number of extensions:    26
    BIG-REQUESTS
    DAMAGE
    DEC-XTRAP
    DOUBLE-BUFFER
    DPMS
    Extended-Visual-Information
    GLX
    MIT-SHM
    MIT-SUNDRY-NONSTANDARD
    RANDR
    RECORD
    RENDER
    SECURITY
    SGI-GLX
    SHAPE
    SYNC
    TOG-CUP
    X-Resource
    XC-APPGROUP
    XC-MISC
    XFIXES
    XFree86-Bigfont
    XInputExtension
    XKEYBOARD
    XTEST
    XVideo
default screen number:    0
number of screens:    1

screen #0:
  dimensions:    1024x768 pixels (347x260 millimeters)
  resolution:    75x75 dots per inch
  depths (7):    24, 1, 4, 8, 15, 16, 32
  root window id:    0x96
  depth of root window:    24 planes
  number of colormaps:    minimum 1, maximum 1
  default colormap:    0x7c
  default number of colormap cells:    256
  preallocated pixels:    black 0, white 16777215
  options:    backing-store YES, save-unders YES
  largest cursor:    1024x768
  current input event mask:    0xfa8033
    KeyPressMask             KeyReleaseMask           EnterWindowMask          
    LeaveWindowMask          ExposureMask             StructureNotifyMask      
    SubstructureNotifyMask   SubstructureRedirectMask FocusChangeMask          
    PropertyChangeMask       ColormapChangeMask       
  number of visuals:    8
  default visual id:  0x74
  visual:
    visual id:    0x74
    class:    TrueColor
    depth:    24 planes
    available colormap entries:    256 per subfield
    red, green, blue masks:    0xff0000, 0xff00, 0xff
    significant bits in color specification:    8 bits
  visual:
    visual id:    0x75
    class:    TrueColor
    depth:    24 planes
    available colormap entries:    256 per subfield
    red, green, blue masks:    0xff0000, 0xff00, 0xff
    significant bits in color specification:    8 bits
  visual:
    visual id:    0x76
    class:    TrueColor
    depth:    24 planes
    available colormap entries:    256 per subfield
    red, green, blue masks:    0xff0000, 0xff00, 0xff
    significant bits in color specification:    8 bits
  visual:
    visual id:    0x77
    class:    TrueColor
    depth:    24 planes
    available colormap entries:    256 per subfield
    red, green, blue masks:    0xff0000, 0xff00, 0xff
    significant bits in color specification:    8 bits
  visual:
    visual id:    0x78
    class:    DirectColor
    depth:    24 planes
    available colormap entries:    256 per subfield
    red, green, blue masks:    0xff0000, 0xff00, 0xff
    significant bits in color specification:    8 bits
  visual:
    visual id:    0x79
    class:    DirectColor
    depth:    24 planes
    available colormap entries:    256 per subfield
    red, green, blue masks:    0xff0000, 0xff00, 0xff
    significant bits in color specification:    8 bits
  visual:
    visual id:    0x7a
    class:    DirectColor
    depth:    24 planes
    available colormap entries:    256 per subfield
    red, green, blue masks:    0xff0000, 0xff00, 0xff
    significant bits in color specification:    8 bits
  visual:
    visual id:    0x7b
    class:    DirectColor
    depth:    24 planes
    available colormap entries:    256 per subfield
    red, green, blue masks:    0xff0000, 0xff00, 0xff
    significant bits in color specification:    8 bits

XInputExtension version 1.3 opcode: 131, base event: 66, base error: 129
  Extended devices :
	"pointer"	[XPointer]
	"keyboard"	[XKeyboard]
Comment 24 Sergey V. Udaltsov 2009-08-17 19:59:37 UTC
> XInputExtension version 1.3 opcode: 131, base event: 66, base error: 129
>  Extended devices :
>    "pointer"    [XPointer]
>    "keyboard"    [XKeyboard]

So, there IS XInputExtension here. Now, the question is what could cause that error?... libxklavier is using DevicePresence to get xiclass. Then immediately passes it to XSelectExtensionEvent.
Comment 25 Sergey V. Udaltsov 2009-08-17 20:44:28 UTC
xkl_engine_priv(engine, features) | XKLF_DEVICE_DISCOVERY

changed to

xkl_engine_priv(engine, features) & XKLF_DEVICE_DISCOVERY

(thanks to Chris, well spotted). But that does not explain the issues with the system having XIE in place.
Comment 26 Jens Granseuer 2009-08-19 07:33:52 UTC
AFAIK DevicePresence is much younger than XI, so even if XI is available that doesn't mean the server supports hotplugging. If you don't trap the DevicePresence call that's most likely where it breaks down (or maybe it was SelectExtensionEvents complaining about the class id returned by DevicePresence, don't quite remember; look at the bugs fixing the mouse plugin code to get the whole story).
Comment 27 Chris Coulson 2009-08-19 07:45:43 UTC
Jens - it is failing in XSelectExtensionEvents with BadClass, so you are probably right.
Comment 28 Bastien Nocera 2010-10-13 13:54:19 UTC
This isn't relevant to gnome-settings-daemon itself, is it?

Reassigning to libgnomekbd to fix the extension detection in libxklavier.
Comment 29 Sergey V. Udaltsov 2011-01-29 22:23:57 UTC
I checked the mouse plugin - there is no code for detecting support of DevicePresence. I will ask xorg folks.
Comment 30 Sergey V. Udaltsov 2011-01-29 23:11:40 UTC
I put the fix to libxklavier CVS. Please check.