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 73127 - gnome2-settings-daemon crashes with gtk-multihead
gnome2-settings-daemon crashes with gtk-multihead
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: [obsolete] multihead
1.3.x
Other Solaris
: Normal blocker
: ---
Assigned To: Erwann Chenede
Erwann Chenede
Depends on:
Blocks:
 
 
Reported: 2002-03-01 16:35 UTC by Laszlo (Laca) Peter
Modified: 2004-12-22 21:47 UTC
See Also:
GNOME target: ---
GNOME version: 2.0



Description Laszlo (Laca) Peter 2002-03-01 16:35:09 UTC
gnome2-settings-daemon crashes when running on the gtk-multihead
branch.  The crash does not occur with the "plain gtk+".

This was tested with the snapshot take at "Fri Mar 1 04:26:00 GMT 2002"

Here's the stack trace:

Current function is _gdk_xsettings_watch_cb
 2506     g_assert (gdkwin != NULL);
(dbx)l
 2502   
 2503     gdkwin = gdk_window_lookup_for_display 
 2504       (gdk_x11_display_manager_get_display (gdk_get_display_manager
(), display),
 2505        window);
 2506     g_assert (gdkwin != NULL);
 2507     screen = gdk_drawable_get_screen (gdkwin);
 2508     
 2509     if (is_start)
 2510       gdk_window_add_filter (gdkwin,
gdk_xsettings_client_event_filter, screen);
 2511     else
(dbx)where
current thread: t@1
  [1] __sigprocmask(0x0, 0xffbeee48, 0x0, 0x0, 0x0, 0x0), at 0xfecd9ab8
  [2] _resetsig(0xfecdc408, 0x0, 0x0, 0x55ed8, 0xfecee000, 0x0), at
0xfecce4fc
  [3] _sigon(0x55ed8, 0xfecf59a8, 0x5, 0xffbeef1c, 0x55ed8, 0xfdf11029), at
0xfeccdc9c
  [4] _thrp_kill(0x0, 0x1, 0x5, 0xfecee000, 0x1, 0xff00), at 0xfecd0cb0
  [5] raise(0x5, 0x6, 0xffbef007, 0x0, 0xff3e2668, 0x0), at 0xfdccafe0
  [6] g_logv(log_domain = 0xfe3bbd3c "Gdk", log_level = G_LOG_LEVEL_ERROR,
format = 0xfe3bbd40 "file %s: line %d: assertion failed: (%s)", args1 =
0xffbef4c0), line 551 in "gmessages.c"
  [7] g_log(log_domain = 0xfe3bbd3c "Gdk", log_level = G_LOG_LEVEL_ERROR,
format = 0xfe3bbd40 "file %s: line %d: assertion failed: (%s)", ...), line
574 in "gmessages.c"
=>[8] _gdk_xsettings_watch_cb(display = 0x643b0, window = 29360130U,
is_start = 1, mask = 4325376, cb_data = (nil)), line 2506 in
"gdkevents-x11.c"
  [9] check_manager_window(client = 0x686f0), line 435 in
"xsettings-client.c"
  [10] _gdk_xsettings_client_process_event(client = 0x686f0, xev =
0xffbef830), line 524 in "xsettings-client.c"
  [11] gdk_xsettings_client_event_filter(xevent = 0xffbef830, event =
0x9d700, data = 0x67248), line 2487 in "gdkevents-x11.c"
  [12] gdk_event_apply_filters(xevent = 0xffbef830, event = 0x9d700,
filters = 0x5d388), line 317 in "gdkevents-x11.c"
  [13] gdk_event_translate(display = 0x64320, event = 0x9d700, xevent =
0xffbef830, return_exposes = 0), line 629 in "gdkevents-x11.c"
  [14] _gdk_events_queue(display = 0x64320), line 1822 in "gdkevents-x11.c"
  [15] gdk_event_dispatch(source = 0x683d0, callback = (nil), user_data =
(nil)), line 1881 in "gdkevents-x11.c"
  [16] g_main_dispatch(context = 0x68418), line 1618 in "gmain.c"
  [17] g_main_context_dispatch(context = 0x68418), line 2160 in "gmain.c"
  [18] g_main_context_iterate(context = 0x68418, block = 1, dispatch = 1,
self = 0x56f68), line 2241 in "gmain.c"
  [19] g_main_loop_run(loop = 0x9c3e0), line 2461 in "gmain.c"
  [20] gtk_main(), line 884 in "gtkmain.c"
  [21] main(argc = 1, argv = 0xffbefc84), line 211 in
"gnome-settings-daemon.c"
(dbx)
Comment 1 Erwann Chenede 2002-03-01 16:51:15 UTC
In gdk_xsettings_watch_cb the g_assert is wrong as event filters
can be added without window information.
Comment 2 Erwann Chenede 2002-03-01 18:40:51 UTC
in gdk_xsettings_watch_cb remove  the g_assert on gdkwin.
in gdk_xsettings_notify_cb revert to default screen in an GDK_NOTHING
event is received.
the changes are in cvs branch.