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 78061 - Nautilus fails to start on ffb type frame buffer when deflinear mode set to false
Nautilus fails to start on ffb type frame buffer when deflinear mode set to f...
Status: RESOLVED FIXED
Product: nautilus
Classification: Core
Component: general
0.x.x [obsolete]
Other Solaris
: High critical
: 1.1.x
Assigned To: Nautilus Maintainers
Nautilus Maintainers
Depends on:
Blocks:
 
 
Reported: 2002-04-08 11:43 UTC by robert.kinsella
Modified: 2004-12-22 21:47 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
proposed Nautlius patch (2.24 KB, patch)
2002-04-19 06:48 UTC, Shivram U
none Details | Review
proposed gtk+ patch (1.73 KB, patch)
2002-04-19 06:49 UTC, Shivram U
none Details | Review

Description robert.kinsella 2002-04-08 11:43:56 UTC
Using Beta 3 on Solaris Sparc 8
Attempting to start nautilus on ffb type frame buffer (graphics adapter)
reports an X window system error when deflinear mode set to false.

Running nautilus --sync gives the following error

The program 'nautilus' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadMatch (invalid parameter attributes)'.
  (Details: serial 1389 error_code 8 request_code 2 minor_code 0)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error()
function.)

Nautilus functions correctly wheen ffb deflinear option set to true
Comment 1 Kalpesh Shah 2002-04-08 16:27:51 UTC
detected a multithreaded program
 in
gdk_x_error                                                              
<
(2) stop in `libgdk-x11-2.0.so.0`gdkmain-x11.c`gdk_x_error
(.../dist/share/forte_dev,v6.2/SUNWspro/bin/../WS6U2/bin/sparcv9/dbx)
run
Running: nautilus 
(process id 4136)
Reading libpixbufloader-png.so
Reading libpng.so.2
Reading pango-basic-x.so
Reading ISO8859-1%UTF-8.so
Reading UTF-8%ISO8859-1.so
Reading libfile.so
t@1 (l@1) stopped in gdk_x_error at line 753 in file "gdkmain-x11.c"
  753     if (error->error_code)
(.../dist/share/forte_dev,v6.2/SUNWspro/bin/../WS6U2/bin/sparcv9/dbx)
where
current thread: t@1
=>[1] gdk_x_error(display = 0x198178, error = 0xffbec660), line 753 in
"gdkmain-x11.c"
  [2] bonobo_x_error_handler(display = 0x198178, error = 0xffbec660),
line 49 in "bonobo-ui-main.c"
  [3] _XError(0xfe21f7dc, 0x198178, 0xfe21a000, 0x0, 0xffbec78c,
0x230), at 0xfe1bc334
  [4] _XReply(0x198178, 0x246, 0x0, 0x230, 0x246, 0x198178), at
0xfe19cc28
  [5] XInternAtom(0x0, 0xfe396068, 0x0, 0x198178, 0xff3e2660,
0xfec9aba6), at 0xfe1a7008
  [6] gdk_window_set_mwm_hints(window = 0x27d1c0, new_hints =
0xffbec8ac), line 3346 in "gdkwindow-x11.c"
  [7] gdk_window_set_decorations(window = 0x27d1c0, decorations = 0),
line 3410 in "gdkwindow-x11.c"
  [8] bonobo_dock_item_realize(widget = 0x214300), line 507 in
"bonobo-dock-item.c"
  [9] g_cclosure_marshal_VOID__VOID(closure = 0x1ae3f0, return_value =
(nil), n_param_values = 1U, param_values = 0xffbeccb0, invocation_hint
= 0xffbecb84, marshal_data = 0xfecbfe88), line 78 in "gmarshal.c"
  [10] g_type_class_meta_marshal(closure = 0x1ae3f0, return_value =
(nil), n_param_values = 1U, param_values = 0xffbeccb0, invocation_hint
= 0xffbecb84, marshal_data = 0x74), line 518 in "gclosure.c"
  [11] g_closure_invoke(closure = 0x1ae3f0, return_value = (nil),
n_param_values = 1U, param_values = 0xffbeccb0, invocation_hint =
0xffbecb84), line 441 in "gclosure.c"

[12] signal_emit_unlocked_R(node = 0x1afac8, detail = 0, instance =
0x214300, emission_return = (nil), instance_and_params = 0xffbeccb0),
line 2275 in "gsignal.c"
  [13] g_signal_emit_valist(instance = 0x214300, signal_id = 16U,
detail = 0, var_args = 0xffbeceec), line 2100 in "gsignal.c"
  [14] gtk_signal_emit(object = 0x214300, signal_id = 16U, ...), line
355 in "gtksignal.c"
  [15] gtk_widget_realize(widget = 0x214300), line 1896 in
"gtkwidget.c"
  [16] gtk_widget_map(widget = 0x214300), line 1815 in "gtkwidget.c"
  [17] gtk_container_map_child(child = 0x214300, client_data = (nil)),
line 2207 in "gtkcontainer.c"
  [18] bonobo_dock_band_forall(container = 0x218120, include_internals
= 1, callback = 0xfdcebbe0 =
&`libgtk-x11-2.0.so.0`gtkcontainer.c`gtk_container_map_child(struct
_GtkWidget *child, gpointer client_data), callback_data = (nil)), line
645 in "bonobo-dock-band.c"
  [19] gtk_container_forall(container = 0x218120, callback =
0xfdcebbe0 =
&`libgtk-x11-2.0.so.0`gtkcontainer.c`gtk_container_map_child(struct
_GtkWidget *child, gpointer client_data), callback_data = (nil)), line
1151 in "gtkcontainer.c"
  [20] gtk_container_map(widget = 0x218120), line 2217 in
"gtkcontainer.c"
  [21] bonobo_dock_band_map(widget = 0x218120), line 539 in
"bonobo-dock-band.c"  [22] g_cclosure_marshal_VOID__VOID(closure =
0x1ae390, return_value = (nil), n_param_values = 1U, param_values =
0xffbed4d8, invocation_hint = 0xffbed3ac, marshal_data = 0xfecc5610),
line 78 in "gmarshal.c"
  [23] g_type_class_meta_marshal(closure = 0x1ae390, return_value =
(nil), n_param_values = 1U, param_values = 0xffbed4d8, invocation_hint
= 0xffbed3ac, marshal_data = 0x6c), line 518 in "gclosure.c"
  [24] g_closure_invoke(closure = 0x1ae390, return_value = (nil),
n_param_values = 1U, param_values = 0xffbed4d8, invocation_hint =
0xffbed3ac), line 441 in "gclosure.c"
  [25] signal_emit_unlocked_R(node = 0x1afa50, detail = 0, instance =
0x218120, emission_return = (nil), instance_and_params = 0xffbed4d8),
line 2275 in "gsignal.c"
  [26] g_signal_emit_valist(instance = 0x218120, signal_id = 14U,
detail = 0, var_args = 0xffbed714), line 2100 in "gsignal.c"
  [27] gtk_signal_emit(object = 0x218120, signal_id = 14U, ...), line
355 in "gtksignal.c"
  [28] gtk_widget_map(widget = 0x218120), line 1817 in "gtkwidget.c"
  [29] gtk_container_map_child(child = 0x218120, client_data = (nil)),
line 2207 in "gtkcontainer.c"
  [30] forall_helper(list = (nil), callback = 0xfdcebbe0 =
&`libgtk-x11-2.0.so.0`gtkcontainer.c`gtk_container_map_child(struct
_GtkWidget *child, gpointer client_data), callback_data = (nil)), line
628 in "bonobo-dock.c"
  [31] bonobo_dock_forall(container = 0x213cc0, include_internals = 1,
callback = 0xfdcebbe0 =
&`libgtk-x11-2.0.so.0`gtkcontainer.c`gtk_container_map_child(struct
_GtkWidget *child, gpointer client_data), callback_data = (nil)), line
647 in "bonobo-dock.c"
  [32] gtk_container_forall(container = 0x213cc0, callback =
0xfdcebbe0 =
&`libgtk-x11-2.0.so.0`gtkcontainer.c`gtk_container_map_child(struct
_GtkWidget *child, gpointer client_data), callback_data = (nil)), line
1151 in "gtkcontainer.c"
  [33] gtk_container_map(widget = 0x213cc0), line 2217 in
"gtkcontainer.c"
  [34] bonobo_dock_map(widget = 0x213cc0), line 491 in "bonobo-dock.c"
  [35] g_cclosure_marshal_VOID__VOID(closure = 0x1ae390, return_value
= (nil), n_param_values = 1U, param_values = 0xffbedcf0,
invocation_hint = 0xffbedbc4, marshal_data = 0xfecbab78), line 78 in
"gmarshal.c"
  [36] g_type_class_meta_marshal(closure = 0x1ae390, return_value =
(nil), n_param_values = 1U, param_values = 0xffbedcf0, invocation_hint
= 0xffbedbc4, marshal_data = 0x6c), line 518 in "gclosure.c"
  [37] g_closure_invoke(closure = 0x1ae390, return_value = (nil),
n_param_values = 1U, param_values = 0xffbedcf0, invocation_hint =
0xffbedbc4), line 441 in "gclosure.c"
  [38] signal_emit_unlocked_R(node = 0x1afa50, detail = 0, instance =
0x213cc0, emission_return = (nil), instance_and_params = 0xffbedcf0),
line 2275 in "gsignal.c"
  [39] g_signal_emit_valist(instance = 0x213cc0, signal_id = 14U,
detail = 0, var_args = 0xffbedf2c), line 2100 in "gsignal.c"
  [40] gtk_signal_emit(object = 0x213cc0, signal_id = 14U, ...), line
355 in "gtksignal.c"
  [41] gtk_widget_map(widget = 0x213cc0), line 1817 in "gtkwidget.c"
  [42] gtk_window_map(widget = 0x1c8e40), line 3120 in "gtkwindow.c"
  [43] map(widget = 0x1c8e40), line 285 in "nautilus-desktop-window.c"
  [44] g_cclosure_marshal_VOID__VOID(closure = 0x1ae390, return_value
= (nil), n_param_values = 1U, param_values = 0xffbee360,
invocation_hint = 0xffbee234, marshal_data = 0x792d8), line 78 in
"gmarshal.c"
  [45] g_type_class_meta_marshal(closure = 0x1ae390, return_value =
(nil), n_param_values = 1U, param_values = 0xffbee360, invocation_hint
= 0xffbee234, marshal_data = 0x6c), line 518 in "gclosure.c"
  [46] g_closure_invoke(closure = 0x1ae390, return_value = (nil),
n_param_values = 1U, param_values = 0xffbee360, invocation_hint =
0xffbee234), line 441 in "gclosure.c"
  [47] signal_emit_unlocked_R(node = 0x1afa50, detail = 0, instance =
0x1c8e40, emission_return = (nil), instance_and_params = 0xffbee360),
line 2275 in "gsignal.c"
  [48] g_signal_emit_valist(instance = 0x1c8e40, signal_id = 14U,
detail = 0, var_args = 0xffbee59c), line 2100 in "gsignal.c"
  [49] gtk_signal_emit(object = 0x1c8e40, signal_id = 14U, ...), line
355 in "gtksignal.c"
  [50] gtk_widget_map(widget = 0x1c8e40), line 1817 in "gtkwidget.c"
  [51] gtk_window_show(widget = 0x1c8e40), line 3086 in "gtkwindow.c"
  [52] nautilus_window_show(widget = 0x1c8e40), line 1989 in
"nautilus-window.c"  [53] g_cclosure_marshal_VOID__VOID(closure =
0x1ae330, return_value = (nil), n_param_values = 1U, param_values =
0xffbeea48, invocation_hint = 0xffbee91c, marshal_data = 0xb2150),
line 78 in "gmarshal.c"
  [54] g_type_class_meta_marshal(closure = 0x1ae330, return_value =
(nil), n_param_values = 1U, param_values = 0xffbeea48, invocation_hint
= 0xffbee91c, marshal_data = 0x5c), line 518 in "gclosure.c"
  [55] g_closure_invoke(closure = 0x1ae330, return_value = (nil),
n_param_values = 1U, param_values = 0xffbeea48, invocation_hint =
0xffbee91c), line 441 in "gclosure.c"
  [56] signal_emit_unlocked_R(node = 0x1af9e0, detail = 0, instance =
0x1c8e40, emission_return = (nil), instance_and_params = 0xffbeea48),
line 2275 in "gsignal.c"
  [57] g_signal_emit_valist(instance = 0x1c8e40, signal_id = 12U,
detail = 0, var_args = 0xffbeec84), line 2100 in "gsignal.c"
  [58] gtk_signal_emit(object = 0x1c8e40, signal_id = 12U, ...), line
355 in "gtksignal.c"
  [59] gtk_widget_show(widget = 0x1c8e40), line 1637 in "gtkwidget.c"
  [60] nautilus_desktop_window_new(application = 0x2055c0), line 120
in "nautilus-desktop-window.c"
  [61] nautilus_application_create_desktop_window(application =
0x2055c0), line 590 in "nautilus-application.c"
  [62] nautilus_application_open_desktop(application = 0x2055c0), line
601 in "nautilus-application.c"
  [63] corba_start_desktop(servant = 0x20d73c, ev = 0xffbeef1c), line
186 in "nautilus-shell.c"
  [64] Nautilus_Shell_start_desktop(_obj = 0x20d760, ev = 0xffbeef1c),
line 63 in "nautilus-shell-interface-stubs.c"
  [65] nautilus_application_startup(application = 0x2055c0, kill_shell
= 0, restart_shell = 0, no_default_window = 0, no_desktop = 0,
do_first_time_druid_check = 1, geometry = (nil), urls = (nil)), line
529 in "nautilus-application.c"
  [66] main(argc = 1, argv = 0xffbef154), line 261 in
"nautilus-main.c"
(.../dist/share/forte_dev,v6.2/SUNWspro/bin/../WS6U2/bin/sparcv9/dbx) 
Comment 2 Luis Villa 2002-04-10 21:25:20 UTC
crasher. Eck.
Comment 3 Shivram U 2002-04-19 06:46:44 UTC
The problem lies in nautilus-desktop-window.c:set_window_background.
The problem is when the root window is at a different depth than the 
widget window's depth. If we try to set the widget window's 
background pixmap with the pixmap id of root window and these are of 
different depths, an X Window System BadMatch error results. 
Attaching a patch which fixes this.
Note that the the BadMatch error will also occur in gdk/x11/gdkwindow-
xll.c:gdk_window_set_back_pixmap. Attaching a patch which fixes the 
gtk+ code here for reference.
I will be creating a corresponding bug in gtk+ for the same and will 
update the bug id here.
Comment 4 Shivram U 2002-04-19 06:48:22 UTC
Created attachment 7795 [details] [review]
proposed Nautlius patch
Comment 5 Shivram U 2002-04-19 06:49:41 UTC
Created attachment 7796 [details] [review]
proposed gtk+ patch
Comment 6 Shivram U 2002-04-19 07:01:42 UTC
The corresponding gtk+ bug id is bug #79191
Comment 7 Alexander Larsson 2002-04-21 21:46:27 UTC
This has been fixed in cvs now. I just disabled the whole background
pixmap hack, since it didn't work anyway. (It was supposed to remove
flash on startup.)
Comment 8 Miles Lane 2002-05-05 08:12:31 UTC
Hmm.  I just had Nautilus cvs HEAD (full Gnome2 platform
build just completed tonightat about 11pm PST) crash
when I ran gnome-session.  Nautilus seemed to be doing
it's normal rendering of the desktop, then it crashed
and a new Nautilus process fired up and did not hit the
error (the second Nautilus process is still running happily).

Here's the full error message:

Gdk-ERROR **: The program 'nautilus' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadPixmap (invalid Pixmap parameter)'.
  (Details: serial 3296 error_code 4 request_code 2 minor_code 0)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error()
function.)
Comment 9 Shivram U 2002-05-06 14:25:25 UTC
I had filed bug #79191 for this problem. Actually a check has to be 
made in gdk_window_set_back_pixmap() for any mismatch between the 
depth of the window and the pixmap. 
The function that will cause the problem is nautilus/libnautilus-
private/nautilus-directory-background.c where we call 
gdk_window_set_back_pixmap().
Comment 10 Alexander Larsson 2002-05-06 15:54:51 UTC
Miles, BadPixmap and BadMatch are two very different things. This bug
is fixed. Please open a new one unless you can find another dup.
Comment 11 jacob berkman 2002-07-12 18:18:39 UTC
ok, i still get this on my solaris builds/workstation.

note that the workaround in gtk is not present in the -2-0 branch, and
that it doesn't actually fix the problem.

is this really supposed to be fixed, or are people relying on the
assertion check in HEAD, or did this break again?
Comment 12 jacob berkman 2002-07-12 18:48:28 UTC
ok, getting a different bug, and i have a fix for it soon.