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 161960 - Panel on 2nd screen crashes when using crux
Panel on 2nd screen crashes when using crux
Status: RESOLVED FIXED
Product: gtk-engines
Classification: Deprecated
Component: general
1.9.x
Other All
: High critical
: ---
Assigned To: Seth Nickell
Seth Nickell
Depends on:
Blocks:
 
 
Reported: 2004-12-22 08:02 UTC by Jeffery Small
Modified: 2005-07-24 21:16 UTC
See Also:
GNOME target: ---
GNOME version: 2.7/2.8


Attachments
Proposed fix (4.89 KB, patch)
2005-02-18 00:15 UTC, Jonathan Matthew
committed Details | Review

Description Jeffery Small 2004-12-22 08:02:30 UTC
Steps to reproduce:
System: SunFire V250 SPARC running Solaris 9
Gnome:  2.8.1 Blastwave.org package
Panel:  2.8.2

I have a dual screen setup using two XVR-100 graphic cards. I start a 
separate Gnome 2.8.1 session on each screen. (This was not working at
all in the previous Gnome 2.6 release but does appear to work OK now.) I
have a single panel on each screen. I can use and modify the panel on
the primary desktop without problem. The panel on the 2nd screen has the
standard Applications and Actions menus and I can successfully launch any
application from these menus without problem. However,if I attempt to
modify the panel on the 2nd screen, the panel application appears to crash.

For example, if I select Add To Panel, the Add To Panel window appears on
the 2nd screen briefly and then disappears. The Panels on both screens
disappear and then reappear. Any unsaved changes made to the panel on the
1st screen will have been lost. This repeats consistently.

Has Gnome 2.8 been tested with a dual-screen setup?

I tested this by creating a brand new user account.  I first started Sun's
Gnome 2.0.2 desktop to create a skeleton setup.  I then started the Gnome
2.8.1 desktop.  Other than this problem, 2.8.1 looks like a significant
improvement.  I would really like to get this problem resolved so that I
can use this version.

Stack trace:


Other information:
Comment 1 Vincent Untz 2004-12-22 08:33:35 UTC
Hi Jeff,

> Has Gnome 2.8 been tested with a dual-screen setup?

It's a good question :-) It seems a lot of developer would like to be able to
test a multiscreen GNOME but are not able to do so... (at least, I)

Could you obtain a stack trace of the crash? See
http://bugzilla.gnome.org/getting-traces.cgi

Thanks
Comment 2 Jeffery Small 2005-01-05 00:04:23 UTC
I have bug-buddy installed but get nothing from it when gnome-panel fails.  I
also get no core dump.
Comment 3 Vincent Untz 2005-01-05 08:15:49 UTC
Jeff: could you do this?
 + Run GNOME.
 + Open a terminal.
 + Run 'gnome-session-remove gnome-panel'. The panel should be removed.
 + Run 'gdb gnome-panel'. The panel should reappear.
 + Reproduce the bug.
 + In gdb, once the crash has happened, type 'bt'.
Comment 4 Peter Schow 2005-01-05 18:33:40 UTC
Hmm, I also am experiencing this bug, and tried the exact gdb steps above and
cannot get my usual scenario to fail!

Will keep trying other combinations
Comment 5 Vincent Untz 2005-01-05 20:35:33 UTC
Peter: does bug-buddy gives you a stack trace when the panel crashes?
Comment 6 Jeffery Small 2005-01-05 21:58:02 UTC
I tried to follow the instructions and trued to terminate the gnome-panel.  Here
are my results:

1-> gnome-session-remove gnome-panel
(gnome-session-remove:7332): GnomeUI-WARNING **: While connecting to session
manager:
Authentication Rejected, reason : None of the authentication protocols specified
are supported and host-based authentication failed.
Error: could not connect to the session manager

I get this same result running as my normal login or as root.
Comment 7 Vincent Untz 2005-01-05 22:40:45 UTC
Jeff: that's not normal (except if you ran this outside of GNOME), but we can do
it in another way. Just repeat the command "killall gnome-panel" quickly a few
times. You should end up with no panel. Then you can continue the instructions :-)
Comment 8 Jeffery Small 2005-01-05 23:13:33 UTC
OK, here is some info to chew on.  I killed all gnome-panel processes and:
-------------------------------------------------------------------------------



1-> gdb gnome-panel
(no debugging symbols found)...(gdb) r
Starting program: /opt/csw/bin/gnome-panel 
(no debugging symbols found)...(no debugging symbols found)...[etc, etc, etc]
-------------------------------------------------------------------------------
NOTE:   At this point I right-click on the panel on the 2nd screen and select
    "Add to Panel".  The "Add to the panel" window pops up and the
    following occurs:
-------------------------------------------------------------------------------
The program 'gnome-panel' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadMatch (invalid parameter attributes)'.
  (Details: serial 1511 error_code 8 request_code 56 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.)

Program received signal SIGPIPE, Broken pipe.
0xfda20040 in _writev () from /usr/lib/libc.so.1

(gdb) bt
  • #0 _writev
    from /usr/lib/libc.so.1
  • #1 writev
    from /usr/lib/libthread.so.1
  • #2 link_connection_read
    from /opt/csw/lib/libORBit-2.so.0
  • #3 link_connection_writev
    from /opt/csw/lib/libORBit-2.so.0
  • #4 giop_connection_close
    from /opt/csw/lib/libORBit-2.so.0
  • #5 g_object_run_dispose
    from /opt/csw/lib/libgobject-2.0.so.0
  • #6 link_connections_close
    from /opt/csw/lib/libORBit-2.so.0
  • #7 giop_shutdown
    from /opt/csw/lib/libORBit-2.so.0
  • #8 ORBit_ORB_start_servers
    from /opt/csw/lib/libORBit-2.so.0
  • #9 _exithandle
    from /usr/lib/libc.so.1
  • #10 exit
    from /usr/lib/libc.so.1
  • #11 gdk_x_error
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #12 _XError
    from /usr/openwin/lib/libX11.so.4
  • #13 _XReply
    from /usr/openwin/lib/libX11.so.4
  • #14 XSync
    from /usr/openwin/lib/libX11.so.4
  • #15 _gdk_x11_copy_to_image
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #16 gdk_drawable_copy_to_image
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #17 gdk_pixmap_copy_to_image
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #18 gdk_drawable_real_draw_pixbuf
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #19 gdk_x11_draw_pixbuf
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #20 gdk_draw_pixbuf
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #21 gdk_pixmap_draw_pixbuf
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #22 gdk_draw_pixbuf
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #23 gdk_pixbuf_render_pixmap_and_mask
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #24 eazel_engine_image_render
    from /opt/csw/lib/gtk-2.0/2.4.0/engines/libcrux-engine.so
  • #25 draw_slider
    from /opt/csw/lib/gtk-2.0/2.4.0/engines/libcrux-engine.so
  • #26 gtk_paint_slider
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #27 gtk_range_expose
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #28 _gtk_marshal_BOOLEAN__BOXED
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #29 g_closure_invoke
    from /opt/csw/lib/libgobject-2.0.so.0
  • #30 signal_emit_unlocked_R
    from /opt/csw/lib/libgobject-2.0.so.0
  • #31 g_signal_emit_valist
    from /opt/csw/lib/libgobject-2.0.so.0
  • #32 g_signal_emit
    from /opt/csw/lib/libgobject-2.0.so.0
  • #33 gtk_widget_event_internal
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #34 gtk_container_expose_child
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #35 gtk_scrolled_window_forall
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #36 gtk_container_expose
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #37 gtk_scrolled_window_expose
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #38 _gtk_marshal_BOOLEAN__BOXED
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #39 g_closure_invoke
    from /opt/csw/lib/libgobject-2.0.so.0
  • #40 signal_emit_unlocked_R
    from /opt/csw/lib/libgobject-2.0.so.0
  • #41 g_signal_emit_valist
    from /opt/csw/lib/libgobject-2.0.so.0
  • #42 g_signal_emit
    from /opt/csw/lib/libgobject-2.0.so.0
  • #43 gtk_widget_event_internal
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #44 gtk_container_expose_child
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #45 gtk_box_forall
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #46 gtk_container_expose
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #47 _gtk_marshal_BOOLEAN__BOXED
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #48 g_closure_invoke
    from /opt/csw/lib/libgobject-2.0.so.0
  • #49 signal_emit_unlocked_R
    from /opt/csw/lib/libgobject-2.0.so.0
  • #50 g_signal_emit_valist
    from /opt/csw/lib/libgobject-2.0.so.0
  • #51 g_signal_emit
    from /opt/csw/lib/libgobject-2.0.so.0
  • #52 gtk_widget_event_internal
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #53 gtk_container_expose_child
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #54 gtk_box_forall
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #55 gtk_container_expose
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #56 _gtk_marshal_BOOLEAN__BOXED
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #57 g_closure_invoke
    from /opt/csw/lib/libgobject-2.0.so.0
  • #58 signal_emit_unlocked_R
    from /opt/csw/lib/libgobject-2.0.so.0
  • #59 g_signal_emit_valist
    from /opt/csw/lib/libgobject-2.0.so.0
  • #60 g_signal_emit
    from /opt/csw/lib/libgobject-2.0.so.0
  • #61 gtk_widget_event_internal
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #62 gtk_container_expose_child
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #63 gtk_box_forall
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #64 gtk_container_expose
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #65 _gtk_marshal_BOOLEAN__BOXED
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #66 g_closure_invoke
    from /opt/csw/lib/libgobject-2.0.so.0
  • #67 signal_emit_unlocked_R
    from /opt/csw/lib/libgobject-2.0.so.0
  • #68 g_signal_emit_valist
    from /opt/csw/lib/libgobject-2.0.so.0
  • #69 g_signal_emit
    from /opt/csw/lib/libgobject-2.0.so.0
  • #70 gtk_widget_event_internal
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #71 gtk_container_expose_child
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #72 gtk_container_expose
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #73 _gtk_marshal_BOOLEAN__BOXED
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #74 g_closure_invoke
    from /opt/csw/lib/libgobject-2.0.so.0
  • #75 signal_emit_unlocked_R
    from /opt/csw/lib/libgobject-2.0.so.0
  • #76 g_signal_emit_valist
    from /opt/csw/lib/libgobject-2.0.so.0
  • #77 g_signal_emit
    from /opt/csw/lib/libgobject-2.0.so.0
  • #78 gtk_widget_event_internal
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #79 gtk_main_do_event
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #80 gdk_window_process_all_updates
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #81 gtk_container_idle_sizer
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #82 g_main_dispatch
    from /opt/csw/lib/libglib-2.0.so.0
  • #83 g_main_context_iterate
    from /opt/csw/lib/libglib-2.0.so.0
  • #84 g_main_loop_run
    from /opt/csw/lib/libglib-2.0.so.0
  • #85 gtk_main
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #86 main
  • #0 ORBit_handle_request
    from /opt/csw/lib/libORBit-2.so.0
  • #1 giop_connection_handle_input
    from /opt/csw/lib/libORBit-2.so.0
  • #2 link_connection_set_max_buffer
    from /opt/csw/lib/libORBit-2.so.0
  • #3 g_main_dispatch
    from /opt/csw/lib/libglib-2.0.so.0
  • #4 g_main_context_iterate
    from /opt/csw/lib/libglib-2.0.so.0
  • #5 g_main_context_iteration
    from /opt/csw/lib/libglib-2.0.so.0
  • #6 giop_recv_buffer_get
    from /opt/csw/lib/libORBit-2.so.0
  • #7 ORBit_small_invoke_stub_n
    from /opt/csw/lib/libORBit-2.so.0
  • #8 ORBit_c_stub_invoke
    from /opt/csw/lib/libORBit-2.so.0
  • #9 Bonobo_Unknown_unref
    from /opt/csw/lib/libbonobo-activation.so.4
  • #10 bonobo_object_release_unref
    from /opt/csw/lib/libbonobo-2.so.0
  • #11 control_connection_died_cb
    from /opt/csw/lib/libbonoboui-2.so.0
  • #12 link_connection_unref
    from /opt/csw/lib/libORBit-2.so.0
  • #13 link_connection_exec_disconnect
    from /opt/csw/lib/libORBit-2.so.0
  • #14 giop_connection_close
    from /opt/csw/lib/libORBit-2.so.0
  • #15 g_object_run_dispose
    from /opt/csw/lib/libgobject-2.0.so.0
  • #16 link_connections_close
    from /opt/csw/lib/libORBit-2.so.0
  • #17 giop_shutdown
    from /opt/csw/lib/libORBit-2.so.0
  • #18 ORBit_ORB_start_servers
    from /opt/csw/lib/libORBit-2.so.0
  • #19 _exithandle
    from /usr/lib/libc.so.1
  • #20 exit
    from /usr/lib/libc.so.1
  • #21 gdk_x_error
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #22 _XError
    from /usr/openwin/lib/libX11.so.4
  • #23 _XReply
    from /usr/openwin/lib/libX11.so.4
  • #24 XSync
    from /usr/openwin/lib/libX11.so.4
  • #25 _gdk_x11_copy_to_image
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #26 gdk_drawable_copy_to_image
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #27 gdk_pixmap_copy_to_image
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #28 gdk_drawable_real_draw_pixbuf
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #29 gdk_x11_draw_pixbuf
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #30 gdk_draw_pixbuf
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #31 gdk_pixmap_draw_pixbuf
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #32 gdk_draw_pixbuf
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #33 gdk_pixbuf_render_pixmap_and_mask
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #34 eazel_engine_image_render
    from /opt/csw/lib/gtk-2.0/2.4.0/engines/libcrux-engine.so
  • #35 draw_slider
    from /opt/csw/lib/gtk-2.0/2.4.0/engines/libcrux-engine.so
  • #36 gtk_paint_slider
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #37 gtk_range_expose
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #38 _gtk_marshal_BOOLEAN__BOXED
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #39 g_closure_invoke
    from /opt/csw/lib/libgobject-2.0.so.0
  • #40 signal_emit_unlocked_R
    from /opt/csw/lib/libgobject-2.0.so.0
  • #41 g_signal_emit_valist
    from /opt/csw/lib/libgobject-2.0.so.0
  • #42 g_signal_emit
    from /opt/csw/lib/libgobject-2.0.so.0
  • #43 gtk_widget_event_internal
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #44 gtk_container_expose_child
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #45 gtk_scrolled_window_forall
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #46 gtk_container_expose
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #47 gtk_scrolled_window_expose
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #48 _gtk_marshal_BOOLEAN__BOXED
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #49 g_closure_invoke
    from /opt/csw/lib/libgobject-2.0.so.0
  • #50 signal_emit_unlocked_R
    from /opt/csw/lib/libgobject-2.0.so.0
  • #51 g_signal_emit_valist
    from /opt/csw/lib/libgobject-2.0.so.0
  • #52 g_signal_emit
    from /opt/csw/lib/libgobject-2.0.so.0
  • #53 gtk_widget_event_internal
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #54 gtk_container_expose_child
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #55 gtk_box_forall
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #56 gtk_container_expose
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #57 _gtk_marshal_BOOLEAN__BOXED
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #58 g_closure_invoke
    from /opt/csw/lib/libgobject-2.0.so.0
  • #59 signal_emit_unlocked_R
    from /opt/csw/lib/libgobject-2.0.so.0
  • #60 g_signal_emit_valist
    from /opt/csw/lib/libgobject-2.0.so.0
  • #61 g_signal_emit
    from /opt/csw/lib/libgobject-2.0.so.0
  • #62 gtk_widget_event_internal
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #63 gtk_container_expose_child
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #64 gtk_box_forall
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #65 gtk_container_expose
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #66 _gtk_marshal_BOOLEAN__BOXED
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #67 g_closure_invoke
    from /opt/csw/lib/libgobject-2.0.so.0
  • #68 signal_emit_unlocked_R
    from /opt/csw/lib/libgobject-2.0.so.0
  • #69 g_signal_emit_valist
    from /opt/csw/lib/libgobject-2.0.so.0
  • #70 g_signal_emit
    from /opt/csw/lib/libgobject-2.0.so.0
  • #71 gtk_widget_event_internal
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #72 gtk_container_expose_child
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #73 gtk_box_forall
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #74 gtk_container_expose
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #75 _gtk_marshal_BOOLEAN__BOXED
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #76 g_closure_invoke
    from /opt/csw/lib/libgobject-2.0.so.0
  • #77 signal_emit_unlocked_R
    from /opt/csw/lib/libgobject-2.0.so.0
  • #78 g_signal_emit_valist
    from /opt/csw/lib/libgobject-2.0.so.0
  • #79 g_signal_emit
    from /opt/csw/lib/libgobject-2.0.so.0
  • #80 gtk_widget_event_internal
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #81 gtk_container_expose_child
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #82 gtk_container_expose
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #83 _gtk_marshal_BOOLEAN__BOXED
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #84 g_closure_invoke
    from /opt/csw/lib/libgobject-2.0.so.0
  • #85 signal_emit_unlocked_R
    from /opt/csw/lib/libgobject-2.0.so.0
  • #86 g_signal_emit_valist
    from /opt/csw/lib/libgobject-2.0.so.0
  • #87 g_signal_emit
    from /opt/csw/lib/libgobject-2.0.so.0
  • #88 gtk_widget_event_internal
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #89 gtk_main_do_event
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #90 gdk_window_process_all_updates
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #91 gtk_container_idle_sizer
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #92 g_main_dispatch
    from /opt/csw/lib/libglib-2.0.so.0
  • #93 g_main_context_iterate
    from /opt/csw/lib/libglib-2.0.so.0
  • #94 g_main_loop_run
    from /opt/csw/lib/libglib-2.0.so.0
  • #95 gtk_main
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #96 main
  • #0 _writev
    from /usr/lib/libc.so.1
  • #1 writev
    from /usr/lib/libthread.so.1
  • #2 writev
    from /usr/lib/libthread.so.1


After exiting gdb, I restarted gnome-panel manually from within an xterm.  It
starts, but displays the following:

2-> gnome-panel

(gnome-panel:18366): GnomeUI-WARNING **: While connecting to session manager:
Authentication Rejected, reason : None of the authentication protocols
specified are supported and host-based authentication failed.

Any clue what is wrong regarding this authentication error?  Is there some
problem with the way the Blastwave gnome package is being compiled that is
keeping the panel and window manager form communicating properly?
-------------------------------------------------------------------------------
Comment 9 Vincent Untz 2005-01-05 23:39:50 UTC
Jeff: thanks for your help. This is becoming interesting...

I have some questions:
  + I see you're using the crux theme (or at least a theme that uses the crux
engine). Does the crash happen when you use another theme (simple, e.g.)?
  + could you run the panel with --sync (use 'set args --sync' in gdb) and copy
the stack trace here?
  + do you know if it's possible to have Blastwave packages with better
debugging symbols? It's not necessary, but it might be helpful.

As for the authentication error, I admit I have no clue at all why this is
happening. Is it specific to the panel or do other GNOME programs launch from
xterm exhibit the same behaviour?
Comment 10 Jeffery Small 2005-01-06 00:46:27 UTC
You hit one problem!

The Crux theme is causing the crash.  I tried all of the other stock themes and
none of them cause a crash.  I use the Bright frames and Default widgets in
Sun's Gnome 2.0, although I remember trying Crux a long time ago and it didn't
cause any problems. The theme mechanism has changed in 2.8 so I guess I just
ended up with Crux by default. So I switched to another theme and now had the
opportunity to observe new problems.

I can now place a drawer on the 2nd screen toolbar.  However, when you try to
modify its properties, display the pull-down panel or launch an application from
the drawer's panel, evetything gets displayed on screen #1.  If you launch gnome
built-in applications from the menus (such as the desktop preference
applications) these windows do properly display on screen #2.  This is a serious
problem.

Another less serious problem unrelated to the gnome-panel has to do with icon
selection from a properties window.  If you click on the icon button the icon
selection panel displays.  If you then click the Browse button the browse window
is displayed.  Select an icon and it should be immediately placed on the
properties window (as in Gnome 2.0), but in this case, you are returned to the
original icon selection window and must click again on OK to get back to the
properties window.  This is annoying.

It is also very annoying that Gnome cannot remember where all windows are placed
(xterms, etc.) on all desktops and screens when the "Save Current Setup" is
performed.

I did try to run other gnome applications manually (i.e., gnometris,
gnome-stones, etc.) and they produced the same authentication error message
previously reported for gnome-panel.

To help out your debugging, I did reselect the Crux theme and ran gnome-panel
with the --sync argument.  Here are the results:

-------------------------------------------------------------------------------
2-> gdb gnome-panel
(no debugging symbols found)...(gdb) set args --sync
(gdb) r
Starting program: /opt/csw/bin/gnome-panel --sync
(no debugging symbols found)...(no debugging symbols found)... .............

The program 'gnome-panel' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadMatch (invalid parameter attributes)'.
  (Details: serial 4595 error_code 8 request_code 56 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.)

Program received signal SIGSEGV, Segmentation fault.
0xfdef4a3c in ORBit_handle_request () from /opt/csw/lib/libORBit-2.so.0

(gdb) bt
  • #0 ORBit_handle_request
    from /opt/csw/lib/libORBit-2.so.0
  • #1 giop_connection_handle_input
    from /opt/csw/lib/libORBit-2.so.0
  • #2 link_connection_set_max_buffer
    from /opt/csw/lib/libORBit-2.so.0
  • #3 g_main_dispatch
    from /opt/csw/lib/libglib-2.0.so.0
  • #4 g_main_context_iterate
    from /opt/csw/lib/libglib-2.0.so.0
  • #5 g_main_context_iteration
    from /opt/csw/lib/libglib-2.0.so.0
  • #6 giop_recv_buffer_get
    from /opt/csw/lib/libORBit-2.so.0
  • #7 ORBit_small_invoke_stub_n
    from /opt/csw/lib/libORBit-2.so.0
  • #8 ORBit_c_stub_invoke
    from /opt/csw/lib/libORBit-2.so.0
  • #9 Bonobo_Unknown_unref
    from /opt/csw/lib/libbonobo-activation.so.4
  • #10 bonobo_object_release_unref
    from /opt/csw/lib/libbonobo-2.so.0
  • #11 control_connection_died_cb
    from /opt/csw/lib/libbonoboui-2.so.0
  • #12 link_connection_unref
    from /opt/csw/lib/libORBit-2.so.0
  • #13 link_connection_exec_disconnect
    from /opt/csw/lib/libORBit-2.so.0
  • #14 giop_connection_close
    from /opt/csw/lib/libORBit-2.so.0
  • #15 g_object_run_dispose
    from /opt/csw/lib/libgobject-2.0.so.0
  • #16 link_connections_close
    from /opt/csw/lib/libORBit-2.so.0
  • #17 giop_shutdown
    from /opt/csw/lib/libORBit-2.so.0
  • #18 ORBit_ORB_start_servers
    from /opt/csw/lib/libORBit-2.so.0
  • #19 _exithandle
    from /usr/lib/libc.so.1
  • #20 exit
    from /usr/lib/libc.so.1
  • #21 gdk_x_error
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #22 _XError
    from /usr/openwin/lib/libX11.so.4
  • #23 _XReply
    from /usr/openwin/lib/libX11.so.4
  • #24 XSync
    from /usr/openwin/lib/libX11.so.4
  • #25 _XSyncFunction
    from /usr/openwin/lib/libX11.so.4
  • #26 gdk_x11_draw_drawable
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #27 gdk_draw_drawable
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #28 gdk_pixmap_draw_drawable
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #29 gdk_draw_drawable
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #30 gdk_window_draw_drawable
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #31 gdk_draw_drawable
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #32 draw_box
    from /opt/csw/lib/gtk-2.0/2.4.0/engines/libcrux-engine.so
  • #33 gtk_paint_box
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #34 gtk_range_expose
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #35 _gtk_marshal_BOOLEAN__BOXED
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #36 g_closure_invoke
    from /opt/csw/lib/libgobject-2.0.so.0
  • #37 signal_emit_unlocked_R
    from /opt/csw/lib/libgobject-2.0.so.0
  • #38 g_signal_emit_valist
    from /opt/csw/lib/libgobject-2.0.so.0
  • #39 g_signal_emit
    from /opt/csw/lib/libgobject-2.0.so.0
  • #40 gtk_widget_event_internal
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #41 gtk_container_expose_child
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #42 gtk_scrolled_window_forall
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #43 gtk_container_expose
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #44 gtk_scrolled_window_expose
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #45 _gtk_marshal_BOOLEAN__BOXED
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #46 g_closure_invoke
    from /opt/csw/lib/libgobject-2.0.so.0
  • #47 signal_emit_unlocked_R
    from /opt/csw/lib/libgobject-2.0.so.0
  • #48 g_signal_emit_valist
    from /opt/csw/lib/libgobject-2.0.so.0
  • #49 g_signal_emit
    from /opt/csw/lib/libgobject-2.0.so.0
  • #50 gtk_widget_event_internal
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #51 gtk_container_expose_child
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #52 gtk_box_forall
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #53 gtk_container_expose
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #54 _gtk_marshal_BOOLEAN__BOXED
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #55 g_closure_invoke
    from /opt/csw/lib/libgobject-2.0.so.0
  • #56 signal_emit_unlocked_R
    from /opt/csw/lib/libgobject-2.0.so.0
  • #57 g_signal_emit_valist
    from /opt/csw/lib/libgobject-2.0.so.0
  • #58 g_signal_emit
    from /opt/csw/lib/libgobject-2.0.so.0
  • #59 gtk_widget_event_internal
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #60 gtk_container_expose_child
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #61 gtk_box_forall
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #62 gtk_container_expose
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #63 _gtk_marshal_BOOLEAN__BOXED
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #64 g_closure_invoke
    from /opt/csw/lib/libgobject-2.0.so.0
  • #65 signal_emit_unlocked_R
    from /opt/csw/lib/libgobject-2.0.so.0
  • #66 g_signal_emit_valist
    from /opt/csw/lib/libgobject-2.0.so.0
  • #67 g_signal_emit
    from /opt/csw/lib/libgobject-2.0.so.0
  • #68 gtk_widget_event_internal
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #69 gtk_container_expose_child
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #70 gtk_box_forall
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #71 gtk_container_expose
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #72 _gtk_marshal_BOOLEAN__BOXED
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #73 g_closure_invoke
    from /opt/csw/lib/libgobject-2.0.so.0
  • #74 signal_emit_unlocked_R
    from /opt/csw/lib/libgobject-2.0.so.0
  • #75 g_signal_emit_valist
    from /opt/csw/lib/libgobject-2.0.so.0
  • #76 g_signal_emit
    from /opt/csw/lib/libgobject-2.0.so.0
  • #77 gtk_widget_event_internal
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #78 gtk_container_expose_child
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #79 gtk_container_expose
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #80 _gtk_marshal_BOOLEAN__BOXED
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #81 g_closure_invoke
    from /opt/csw/lib/libgobject-2.0.so.0
  • #82 signal_emit_unlocked_R
    from /opt/csw/lib/libgobject-2.0.so.0
  • #83 g_signal_emit_valist
    from /opt/csw/lib/libgobject-2.0.so.0
  • #84 g_signal_emit
    from /opt/csw/lib/libgobject-2.0.so.0
  • #85 gtk_widget_event_internal
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #86 gtk_main_do_event
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #87 gdk_window_process_all_updates
    from /opt/csw/lib/libgdk-x11-2.0.so.0
  • #88 gtk_container_idle_sizer
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #89 g_main_dispatch
    from /opt/csw/lib/libglib-2.0.so.0
  • #90 g_main_context_iterate
    from /opt/csw/lib/libglib-2.0.so.0
  • #91 g_main_loop_run
    from /opt/csw/lib/libglib-2.0.so.0
  • #92 gtk_main
    from /opt/csw/lib/libgtk-x11-2.0.so.0
  • #93 main

Vincent, thanks for your help.  I hope this info is helpful in getting these
issues resolved.
Comment 11 Vincent Untz 2005-01-06 01:20:24 UTC
> You hit one problem!
> 
> The Crux theme is causing the crash.  I tried all of the other stock themes and
> none of them cause a crash.  I use the Bright frames and Default widgets in
> Sun's Gnome 2.0, although I remember trying Crux a long time ago and it didn't
> cause any problems. The theme mechanism has changed in 2.8 so I guess I just
> ended up with Crux by default. So I switched to another theme and now had the
> opportunity to observe new problems.

Great! We'll move the bug to gnome-themes, then.

> I can now place a drawer on the 2nd screen toolbar.  However, when you try to
> modify its properties, display the pull-down panel or launch an application from
> the drawer's panel, evetything gets displayed on screen #1.  If you launch gnome
> built-in applications from the menus (such as the desktop preference
> applications) these windows do properly display on screen #2.  This is a serious
> problem.

This is probably bug #114842. You might want to add yourself to the cc field of
this bug.

> Another less serious problem unrelated to the gnome-panel has to do with icon
> selection from a properties window.  If you click on the icon button the icon
> selection panel displays.  If you then click the Browse button the browse window
> is displayed.  Select an icon and it should be immediately placed on the
> properties window (as in Gnome 2.0), but in this case, you are returned to the
> original icon selection window and must click again on OK to get back to the
> properties window.  This is annoying.

This is a bug in libgnomeui. You should open a new bug against libgnomeui.

> It is also very annoying that Gnome cannot remember where all windows are placed
> (xterms, etc.) on all desktops and screens when the "Save Current Setup" is
> performed.

If you use gnome-terminal and not xterm, I think this should work.
Comment 12 Vincent Untz 2005-01-06 01:22:00 UTC
gnome-themes guys: Jeff is really helpful, so don't hesitate to ask for more
informations!
Comment 13 Jonathan Matthew 2005-02-17 13:41:44 UTC
I've been silently suffering this problem for a while, but it's recently started
annoying me again.  

I've done a bit of poking around and I think I've figured out what's going on
here.  It appears to be a GDK pixmap creation problem, with enough things
masking it that it sort of looks like it's the panel's fault, or the theme's
fault if you look a bit closer.  Apps that draw to multiple X11 screens aren't
very common (gnome-panel is about the only one I can think of, besides WMs), and
nor are multi-screen (non-Xinerama) setups on which they can do so.

The crux theme uses gdk_pixbuf_render_pixmap_and_mask() to create pixmaps
with which to draw widgets (I think it's the scrollbar in the 'add to panel'
dialog that actually triggers it, but if it wasn't that, it'd be something else).

gdk_pixbuf_render_pixmap_and_mask() calls
gdk_pixbuf_render_pixmap_and_mask_for_colormap() using the colormap returned by
gdk_rgb_get_colormap(), which associated with the default screen.

gdk_pixbuf_render_pixmap_and_mask_for_colormap() creates the target pixmap,
passing into gdk_pixmap_new() the root window for the screen associated with the
colormap.. which isn't the right screen in this case.  When something attempts
to use that pixmap to render to a drawable for a non-default screen, the source 
drawable doesn't match the target, so we get a BadMatch error (XCopyArea(3X11) 
says "If the drawables do not have the same root, a BadMatch error results.").

The actual crash appears to happen in a broken cleanup handler or something.
I'm fairly certain that fixing the BadMatch error will hide that bug for a bit
longer.

For what it's worth, the investigation resulting in the above was done using
source packages from debian unstable (gtk+ 2.6.2, gnome-themes 2.8.2), as that's
where I'm experiencing the problem.

Assuming all the above is correct, it looks like the only to fix it is
to pass an 'eventual target' drawable in to gdk_pixbuf_render_pixmap_and_mask()
so it can create a pixmap for the right screen.

(apologies if I'm mixing up terms here; I'd never looked at any of this code
before today, and I know just enough about X11 programming to confuse myself and
others)
Comment 14 Jonathan Matthew 2005-02-18 00:15:13 UTC
Created attachment 37628 [details] [review]
Proposed fix

Alternatively, here's a patch (against gnome-themes 2.8.2).  It doesn't fix the
gdk_pixbuf_render_pixmap_and_mask() being non multihead safe, but it does get
multiheaded crux-themed gnome-panels working for me.  I haven't tested it
extensively, though.
Comment 15 Calum Benson 2005-06-20 12:40:18 UTC
The engines now live in gtk-engines module, re-assigning.
Comment 16 Thomas Wood 2005-07-07 19:30:45 UTC
Looks like a reasonable patch. Can anyone with a dual screen setup test it
against the latest gtk-engines and confirm?
Comment 17 Benjamin Berg 2005-07-18 09:29:42 UTC
I tested the proposed patch, and it fixes the crash. The tested setup is a dual
head radeon 9200 with xinerama (on x86).
Comment 18 Thomas Wood 2005-07-24 21:16:49 UTC
Committed the proposed patch. Marking as fixed.