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 560618 - Mouse plugin causes g-s-d to crash on startup
Mouse plugin causes g-s-d to crash on startup
Status: RESOLVED FIXED
Product: gnome-settings-daemon
Classification: Core
Component: plugins
2.24.x
Other Linux
: Normal critical
: ---
Assigned To: gnome-settings-daemon-maint
gnome-settings-daemon-maint
Depends on:
Blocks:
 
 
Reported: 2008-11-13 10:15 UTC by Wouter Bolsterlee (uws)
Modified: 2008-11-20 18:01 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
trap X errors (813 bytes, patch)
2008-11-13 21:20 UTC, Jens Granseuer
reviewed Details | Review
Improved fix (795 bytes, patch)
2008-11-14 10:31 UTC, Wouter Bolsterlee (uws)
committed Details | Review

Description Wouter Bolsterlee (uws) 2008-11-13 10:15:01 UTC
** (gnome-settings-daemon:27985): DEBUG: Loading /scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/libmouse.so
** (gnome-settings-daemon:27985): DEBUG: Registering GsdMousePlugin
** (gnome-settings-daemon:27985): DEBUG: Creating object of type GsdMousePlugin
** (gnome-settings-daemon:27985): DEBUG: GsdMousePlugin initializing
** (gnome-settings-daemon:27985): DEBUG: Activating mouse plugin
** (gnome-settings-daemon:27985): DEBUG: Starting mouse manager
The program 'gnome-settings-daemon' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadClass, invalid event class'.
  (Details: serial 563 error_code 175 request_code 151 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.)
[1226571043,000,xklavier.c:xkl_engine_start_listen/] 	The backend does not require manual layout management - but it is provided by the application


After removing the file/scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/libmouse.so g-s-d does not crash anymore on startup, but of course lacks functionality:

** (gnome-settings-daemon:27994): DEBUG: GnomeSettingsManager: emitting plugin-activated keyboard
** (gnome-settings-daemon:27994): DEBUG: Plugin keyboard: active
** (gnome-settings-daemon:27994): DEBUG: GnomeSettingsModule 0x778770 initialising
** (gnome-settings-daemon:27994): DEBUG: Loading /scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/libmouse.so
** (gnome-settings-daemon:27994): WARNING **: /scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/libmouse.so: cannot open shared object file: No such file or directory
** (gnome-settings-daemon:27994): WARNING **: Cannot load plugin 'Mouse' since file '/scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/libmouse.so' cannot be read.
** (gnome-settings-daemon:27994): DEBUG: GnomeSettingsModule 0x778770 finalizing
** (gnome-settings-daemon:27994): WARNING **: Error activating plugin 'Mouse'
** (gnome-settings-daemon:27994): DEBUG: Plugin mouse: activation failed
Comment 1 Wouter Bolsterlee (uws) 2008-11-13 10:18:57 UTC
I'm not sure if this is at all useful, but here's some more information:

$ gdb
GNU gdb Red Hat Linux (6.6-45.fc8rh)
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
(gdb) file /scratch/wbolster/gnome-2-24/libexec/gnome-settings-daemon
Reading symbols from /scratch/wbolster/gnome-2-24/libexec/gnome-settings-daemon...done.
Using host libthread_db library "/lib64/libthread_db.so.1".
(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 --no-daemon --debug --sync
Starting program: /scratch/wbolster/gnome-2-24/libexec/gnome-settings-daemon --no-daemon --debug --sync
Missing separate debuginfo for /scratch/wbolster/gnome-2-24/lib/libssl.so.6
Try: yum --enablerepo='*-debuginfo' install /usr/lib/debug/.build-id/27/bc4c062eae2aa77445792d92dbd7fff151cbfd.debug
Missing separate debuginfo for /scratch/wbolster/gnome-2-24/lib/libcrypto.so.6
Try: yum --enablerepo='*-debuginfo' install /usr/lib/debug/.build-id/42/66326ab99e304f1fae6f9648b792026a7be9b8.debug
[Thread debugging using libthread_db enabled]
Breakpoint 2 at 0x2aaaab0ba880: file gdkmain-x11.c, line 613.
Pending breakpoint "gdk_x_error" resolved
** (gnome-settings-daemon:31150): DEBUG: Successfully connected to D-Bus
** (gnome-settings-daemon:31150): DEBUG: Starting settings manager
** (gnome-settings-daemon:31150): DEBUG: Loading settings plugins from dir: /scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/
** (gnome-settings-daemon:31150): DEBUG: Loading plugin: /scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/screensaver.gnome-settings-plugin
** (gnome-settings-daemon:31150): DEBUG: GnomeSettingsPluginInfo: name='Screensaver' file='/scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/screensaver.gnome-settings-plugin' location='screensaver'
** (gnome-settings-daemon:31150): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/screensaver for changes
** (gnome-settings-daemon:31150): DEBUG: Loading plugin: /scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/keyboard.gnome-settings-plugin
** (gnome-settings-daemon:31150): DEBUG: GnomeSettingsPluginInfo: name='Keyboard' file='/scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/keyboard.gnome-settings-plugin' location='keyboard'
** (gnome-settings-daemon:31150): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/keyboard for changes
** (gnome-settings-daemon:31150): DEBUG: Loading plugin: /scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/font.gnome-settings-plugin
** (gnome-settings-daemon:31150): DEBUG: GnomeSettingsPluginInfo: name='Font' file='/scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/font.gnome-settings-plugin' location='font'
** (gnome-settings-daemon:31150): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/font for changes
** (gnome-settings-daemon:31150): DEBUG: Loading plugin: /scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/typing-break.gnome-settings-plugin
** (gnome-settings-daemon:31150): DEBUG: GnomeSettingsPluginInfo: name='Typing Break' file='/scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/typing-break.gnome-settings-plugin' location='typing-break'
** (gnome-settings-daemon:31150): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/typing-break for changes
** (gnome-settings-daemon:31150): DEBUG: Loading plugin: /scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/xrdb.gnome-settings-plugin
** (gnome-settings-daemon:31150): DEBUG: GnomeSettingsPluginInfo: name='X Resource Database' file='/scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/xrdb.gnome-settings-plugin' location='xrdb'
** (gnome-settings-daemon:31150): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/xrdb for changes
** (gnome-settings-daemon:31150): DEBUG: Loading plugin: /scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/sound.gnome-settings-plugin
** (gnome-settings-daemon:31150): DEBUG: GnomeSettingsPluginInfo: name='Sound' file='/scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/sound.gnome-settings-plugin' location='sound'
** (gnome-settings-daemon:31150): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/sound for changes
** (gnome-settings-daemon:31150): DEBUG: Loading plugin: /scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/housekeeping.gnome-settings-plugin
** (gnome-settings-daemon:31150): DEBUG: GnomeSettingsPluginInfo: name='Housekeeping' file='/scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/housekeeping.gnome-settings-plugin' location='housekeeping'
** (gnome-settings-daemon:31150): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/housekeeping for changes
** (gnome-settings-daemon:31150): DEBUG: Loading plugin: /scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/a11y-keyboard.gnome-settings-plugin
** (gnome-settings-daemon:31150): DEBUG: GnomeSettingsPluginInfo: name='Accessibility Keyboard' file='/scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/a11y-keyboard.gnome-settings-plugin' location='a11y-keyboard'
** (gnome-settings-daemon:31150): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/a11y-keyboard for changes
** (gnome-settings-daemon:31150): DEBUG: Loading plugin: /scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/clipboard.gnome-settings-plugin
** (gnome-settings-daemon:31150): DEBUG: GnomeSettingsPluginInfo: name='Clipboard' file='/scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/clipboard.gnome-settings-plugin' location='clipboard'
** (gnome-settings-daemon:31150): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/clipboard for changes
** (gnome-settings-daemon:31150): DEBUG: Loading plugin: /scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/mouse.gnome-settings-plugin
** (gnome-settings-daemon:31150): DEBUG: GnomeSettingsPluginInfo: name='Mouse' file='/scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/mouse.gnome-settings-plugin' location='mouse'
** (gnome-settings-daemon:31150): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/mouse for changes
** (gnome-settings-daemon:31150): DEBUG: Loading plugin: /scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/xsettings.gnome-settings-plugin
** (gnome-settings-daemon:31150): DEBUG: GnomeSettingsPluginInfo: name='X Settings' file='/scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/xsettings.gnome-settings-plugin' location='xsettings'
** (gnome-settings-daemon:31150): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/xsettings for changes
** (gnome-settings-daemon:31150): DEBUG: Loading plugin: /scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/xrandr.gnome-settings-plugin
** (gnome-settings-daemon:31150): DEBUG: GnomeSettingsPluginInfo: name='XRandR' file='/scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/xrandr.gnome-settings-plugin' location='xrandr'
** (gnome-settings-daemon:31150): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/xrandr for changes
** (gnome-settings-daemon:31150): DEBUG: Loading plugin: /scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/keybindings.gnome-settings-plugin
** (gnome-settings-daemon:31150): DEBUG: GnomeSettingsPluginInfo: name='Keybindings' file='/scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/keybindings.gnome-settings-plugin' location='keybindings'
** (gnome-settings-daemon:31150): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/keybindings for changes
** (gnome-settings-daemon:31150): DEBUG: Loading plugin: /scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/media-keys.gnome-settings-plugin
** (gnome-settings-daemon:31150): DEBUG: GnomeSettingsPluginInfo: name='Media keys' file='/scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/media-keys.gnome-settings-plugin' location='media-keys'
** (gnome-settings-daemon:31150): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/media-keys for changes
** (gnome-settings-daemon:31150): DEBUG: Loading plugin: /scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/background.gnome-settings-plugin
** (gnome-settings-daemon:31150): DEBUG: GnomeSettingsPluginInfo: name='Background' file='/scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/background.gnome-settings-plugin' location='background'
** (gnome-settings-daemon:31150): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/background for changes
** (gnome-settings-daemon:31150): DEBUG: Loading plugin: /scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/dummy.gnome-settings-plugin
** (gnome-settings-daemon:31150): DEBUG: GnomeSettingsPluginInfo: name='Dummy' file='/scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/dummy.gnome-settings-plugin' location='dummy'
** (gnome-settings-daemon:31150): DEBUG: Monitoring dir /apps/gnome_settings_daemon/plugins/dummy for changes
** (gnome-settings-daemon:31150): DEBUG: GnomeSettingsModule 0x620f20 initialising
** (gnome-settings-daemon:31150): DEBUG: Loading /scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/libxrandr.so
[New Thread 46912573305088 (LWP 31150)]
** (gnome-settings-daemon:31150): DEBUG: Registering GsdXrandrPlugin
** (gnome-settings-daemon:31150): DEBUG: Creating object of type GsdXrandrPlugin
** (gnome-settings-daemon:31150): DEBUG: GsdXrandrPlugin initializing
** (gnome-settings-daemon:31150): DEBUG: Activating xrandr plugin
** (gnome-settings-daemon:31150): DEBUG: Starting xrandr manager
** (gnome-settings-daemon:31150): DEBUG: GnomeSettingsManager: emitting plugin-activated xrandr
** (gnome-settings-daemon:31150): DEBUG: Plugin xrandr: active
** (gnome-settings-daemon:31150): DEBUG: GnomeSettingsModule 0x620f70 initialising
** (gnome-settings-daemon:31150): DEBUG: Loading /scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/libxsettings.so
** (gnome-settings-daemon:31150): DEBUG: Registering GnomeXSettingsPlugin
** (gnome-settings-daemon:31150): DEBUG: Creating object of type GnomeXSettingsPlugin
** (gnome-settings-daemon:31150): DEBUG: GnomeXSettingsPlugin initializing
** (gnome-settings-daemon:31150): DEBUG: Activating xsettings plugin
** (gnome-settings-daemon:31150): DEBUG: Starting xsettings manager
** (gnome-settings-daemon:31150): DEBUG: Setting GTK modules 'gnomebreakpad'
[Detaching after fork from child process 31153. (Try `set detach-on-fork off'.)]
[New Thread 1084229968 (LWP 31154)]
** (gnome-settings-daemon:31150): DEBUG: GnomeSettingsManager: emitting plugin-activated xsettings
** (gnome-settings-daemon:31150): DEBUG: Plugin xsettings: active
** (gnome-settings-daemon:31150): DEBUG: GnomeSettingsModule 0x6210f0 initialising
** (gnome-settings-daemon:31150): DEBUG: Loading /scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/libsound.so
** (gnome-settings-daemon:31150): DEBUG: Registering GsdSoundPlugin
** (gnome-settings-daemon:31150): DEBUG: Creating object of type GsdSoundPlugin
** (gnome-settings-daemon:31150): DEBUG: GsdSoundPlugin initializing
** (gnome-settings-daemon:31150): DEBUG: Activating sound plugin
** (gnome-settings-daemon:31150): DEBUG: Starting sound manager
** (gnome-settings-daemon:31150): DEBUG: GnomeSettingsManager: emitting plugin-activated sound
** (gnome-settings-daemon:31150): DEBUG: Plugin sound: active
** (gnome-settings-daemon:31150): DEBUG: GnomeSettingsModule 0x621140 initialising
** (gnome-settings-daemon:31150): DEBUG: Loading /scratch/wbolster/gnome-2-24/lib/gnome-settings-daemon-2.0/libfont.so
** (gnome-settings-daemon:31150): DEBUG: Registering GsdFontPlugin
** (gnome-settings-daemon:31150): DEBUG: Creating object of type GsdFontPlugin
** (gnome-settings-daemon:31150): DEBUG: GsdFontPlugin initializing
** (gnome-settings-daemon:31150): DEBUG: Activating font plugin
** (gnome-settings-daemon:31150): DEBUG: Starting font manager
[Detaching after fork from child process 31155.]
[Detaching after fork from child process 31156.]

Thread 46912573305088 (LWP 31150)

  • #0 gdk_x_error
    at gdkmain-x11.c line 613
  • #1 _XError
    from /usr/lib64/libX11.so.6
  • #2 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 56
  • #3 _XReply
    from /usr/lib64/libX11.so.6
  • #4 XSync
    from /usr/lib64/libX11.so.6
  • #5 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 56
  • #6 XSetFontPath
    from /usr/lib64/libX11.so.6
  • #7 gsd_font_manager_start
    at gsd-font-manager.c line 309
  • #8 impl_activate
    at gsd-font-plugin.c line 78
  • #9 gnome_settings_plugin_info_activate
    at gnome-settings-plugin-info.c line 506
  • #10 maybe_activate_plugin
    at gnome-settings-manager.c line 93
  • #11 IA__g_slist_foreach
    at gslist.c line 743
  • #12 gnome_settings_manager_start
    at gnome-settings-manager.c line 271
  • #13 main
    at main.c line 312
  • #0 gdk_x_error
    at gdkmain-x11.c line 613
  • #1 xkl_process_error
    at xklavier_evt.c line 513
  • #2 _XError
    from /usr/lib64/libX11.so.6
  • #3 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 56
  • #4 _XReply
    from /usr/lib64/libX11.so.6
  • #5 XSync
    from /usr/lib64/libX11.so.6
  • #6 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 56
  • #7 XSelectExtensionEvent
    from /usr/lib64/libXi.so.6
  • #8 gsd_mouse_manager_start
    at gsd-mouse-manager.c line 335
  • #9 impl_activate
    at gsd-mouse-plugin.c line 78
  • #10 gnome_settings_plugin_info_activate
    at gnome-settings-plugin-info.c line 506
  • #11 maybe_activate_plugin
    at gnome-settings-manager.c line 93
  • #12 IA__g_slist_foreach
    at gslist.c line 743
  • #13 gnome_settings_manager_start
    at gnome-settings-manager.c line 271
  • #14 main
    at main.c line 312
Continuing.
The program 'gnome-settings-daemon' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadClass, invalid event class'.
  (Details: serial 1781 error_code 175 request_code 151 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.)
[1226571454,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.
Comment 2 Wouter Bolsterlee (uws) 2008-11-13 10:33:51 UTC
This commit is the culprit:

r573 | jensg | 2008-11-01 13:38:30 +0100 (Sat, 01 Nov 2008) | 12 lines

2008-11-01  Jens Granseuer  <jensgr@gmx.net>

	Merged from trunk.

	Patch by: William Grant <wgrant@ubuntu.com>

	* plugins/mouse/gsd-mouse-manager.c: (devicepresence_filter),
	(set_devicepresence_handler), (set_mouse_settings),
	(gsd_mouse_manager_start), (gsd_mouse_manager_stop): listen for
	X device changes, and reconfigure the mouse if necessary so that the
	settings aren't ignored when hotplugging (bug #549267)


If I revert to an older revision, it does not crash anymore.
Comment 3 Wouter Bolsterlee (uws) 2008-11-13 10:47:33 UTC
The offending line seems to be a call to XSelectExtensionEvent. The XSelectExtensionEvent(3) manpage states:

       BadClass    A value for an XEventClass argument is invalid.
Comment 4 Wouter Bolsterlee (uws) 2008-11-13 10:47:57 UTC
There's also these compilation warnings:

gsd-mouse-manager.c: In function 'devicepresence_filter':
gsd-mouse-manager.c:316: warning: nested extern declaration of '_XiGetDevicePresenceNotifyEvent'
gsd-mouse-manager.c: In function 'set_devicepresence_handler':
gsd-mouse-manager.c:334: warning: nested extern declaration of '_XiGetDevicePresenceNotifyEvent'
Comment 5 Jens Granseuer 2008-11-13 21:20:17 UTC
Created attachment 122603 [details] [review]
trap X errors

Does this help?


> gsd-mouse-manager.c: In function 'devicepresence_filter':
> gsd-mouse-manager.c:316: warning: nested extern declaration of '_XiGetDevicePresenceNotifyEvent'
> gsd-mouse-manager.c: In function 'set_devicepresence_handler':
> gsd-mouse-manager.c:334: warning: nested extern declaration of '_XiGetDevicePresenceNotifyEvent'

Blame X.org.
Comment 6 Wouter Bolsterlee (uws) 2008-11-14 10:25:24 UTC
Yes, that helps. g-s-d no longer crashes.
Comment 7 Wouter Bolsterlee (uws) 2008-11-14 10:31:13 UTC
Created attachment 122641 [details] [review]
Improved fix

This patch fixes the problem for me. Adding gdk_flush() seems to do the trick.
Comment 8 Wouter Bolsterlee (uws) 2008-11-14 10:33:46 UTC
Hmm. it seems that my previous comment got lost somehow. What I was trying to see that the patch from comment #5 only fixed the crash when running with the --sync option. The patch from comment #7 also works without --sync.
Comment 9 Wouter Bolsterlee (uws) 2008-11-14 10:34:23 UTC
s/see/say is/
Comment 10 Jens Granseuer 2008-11-14 18:40:55 UTC
Hm, I wonder if we can get away without the traps if we do proper error checking...

Can you please try

print xi_presence
print class_presence

right before the XSelectExtensionEvent line?
Comment 11 Wouter Bolsterlee (uws) 2008-11-14 20:33:11 UTC
You mean in GDB? It'll have to wait for a few days, since I don't have physical access to the machine right now, and running g-s-d remotely is kind of pointless in this case :)
Comment 12 Wouter Bolsterlee (uws) 2008-11-20 09:41:05 UTC
Breakpoint 2, 0x000000388c805670 in XSelectExtensionEvent () from /usr/lib64/libXi.so.6
(gdb) bt
  • #0 XSelectExtensionEvent
    from /usr/lib64/libXi.so.6
  • #1 set_devicepresence_handler
    at gsd-mouse-manager.c line 336
  • #2 gsd_mouse_manager_start
    at gsd-mouse-manager.c line 713
  • #3 impl_activate
    at gsd-mouse-plugin.c line 78
  • #4 gnome_settings_plugin_info_activate
    at gnome-settings-plugin-info.c line 506
  • #5 maybe_activate_plugin
    at gnome-settings-manager.c line 93
  • #6 IA__g_slist_foreach
    at gslist.c line 743
  • #7 gnome_settings_manager_start
    at gnome-settings-manager.c line 271
  • #8 main
    at main.c line 312
  • #0 XSelectExtensionEvent
    from /usr/lib64/libXi.so.6
  • #1 set_devicepresence_handler
    at gsd-mouse-manager.c line 336
  • #2 gsd_mouse_manager_start
    at gsd-mouse-manager.c line 713
  • #3 impl_activate
    at gsd-mouse-plugin.c line 78
  • #4 gnome_settings_plugin_info_activate
    at gnome-settings-plugin-info.c line 506
  • #5 maybe_activate_plugin
    at gnome-settings-manager.c line 93
  • #6 IA__g_slist_foreach
    at gslist.c line 743
  • #7 gnome_settings_manager_start
    at gnome-settings-manager.c line 271
  • #8 main
    at main.c line 312
  • #1 set_devicepresence_handler
    at gsd-mouse-manager.c line 336
$5 = 65536
(gdb) print xi_presence
$6 = 110
Comment 13 Jens Granseuer 2008-11-20 18:01:37 UTC
Ok, committed the version with the flush. 65536 might be an invalid class we could check for but I couldn't find any documentation on that, so better safe than sorry.