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 320399 - All Applications using GTK+ 2.8 Crash with 16-Bit visuals on Citrix Metaframe For Unix 1.2
All Applications using GTK+ 2.8 Crash with 16-Bit visuals on Citrix Metaframe...
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: .General
2.8.x
Other All
: Normal normal
: ---
Assigned To: gtk-bugs
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2005-11-01 14:58 UTC by David Richards
Modified: 2006-01-23 20:25 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Requested, 8 bit color xdpyinfo for Citrix Metaframe for Unix (2.93 KB, text/plain)
2006-01-11 19:14 UTC, David Richards
Details
Requested, 24 bit color xdpyinfo for Citrix Metaframe for Unix (1.84 KB, text/plain)
2006-01-13 15:05 UTC, David Richards
Details

Description David Richards 2005-11-01 14:58:35 UTC
Please describe the problem:
I apologize for not knowing where to place this bug.  We built our first GTK 2.8
based GNOME server running Suse Linux 10.  All GNOME/GTK applications crash when
started from Citrix Metaframe For Unix via remote display.  But, they only crash
in 16 bit color.  32 bit color works fine.

Citrix provides an Xserver running on Solaris and provides compression so that
sites with lower bandwidth can access software.  It's similar to tight-VNC.

When you start up any GNOME application, you get this:

oa3:~ # gedit
The program 'gedit' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadMatch (invalid parameter attributes)'.
  (Details: serial 1200 error_code 8 request_code 72 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.)
oa3:~ # 

However, we have other 16 bit based thin clients that work just fine.

gdb reported nothing and just said 'no trace' when I tried to get a backtrace. 
This leads me to believe that it's not even getting started at a very basic
level and the program won't even start.

oa3:~ # rpm -qa | grep gtk2
gtk2-themes-0.1-639
gtk2-engines-2.6.5-5
gtk2-doc-2.8.3-4
gtk2-devel-2.8.3-4
gtk2-2.8.3-4

Cairo was upgraded from the stock 1.0.0 to 1.0.2.

Let me know how I can help.

Steps to reproduce:
1. 
2. 
3. 


Actual results:


Expected results:


Does this happen every time?


Other information:
Comment 1 Matthias Clasen 2005-11-01 15:10:49 UTC
Can you please add an app with --sync in gdb, break in gdk_x_error(), and see
where you get the error from ?
Comment 2 David Richards 2005-11-01 15:57:08 UTC
I'm not that familiar with the steps you are describing, or I would have done it
when I saw the error. :)   I don't know how to use breakpoints.  I tried another
idea, and got a bit more information:

(gdb) exec gedit --sync
(gdb) run
Starting program: /opt/gnome/bin/gedit 
(no debugging symbols found)
Using host libthread_db library "/lib/tls/libthread_db.so.1".
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
---Type <return> to continue, or q <return> to quit---
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread 1091849376 (LWP 15665)]
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
The program 'gedit' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadMatch (invalid parameter attributes)'.
  (Details: serial 912 error_code 8 request_code 72 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 exited with code 01.
(gdb) backtrace
No stack.
(gdb
Comment 3 Matthias Clasen 2005-11-01 23:55:10 UTC
that is because gdk_x_error calls exit(1)

To get a backtrace, do

gdb /usr/bin/gedit

then at the gdb prompt,

break gdk_x_error
run

and when it hits the breakpoint, do

backtrace
Comment 4 Billy Biggs 2005-11-02 00:34:26 UTC
(should probably be "run --sync" instead of just "run")
Comment 5 David Richards 2005-11-02 14:36:14 UTC
Tested as requested and it's still not reporting anything useful.  That seems to
indicate it's not even getting to the breakpoint?  

Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (gdk_x_error) pending.
(gdb) run --sync
Starting program: /opt/gnome/bin/gedit --sync
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread 1091849376 (LWP 28300)]
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
The program 'gedit' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadMatch (invalid parameter attributes)'.
  (Details: serial 1071 error_code 8 request_code 72 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 exited with code 01.
(gdb) backtrace
No stack.
(gdb)
Comment 6 David Richards 2005-11-02 14:36:39 UTC
For your information:

oa3:~ # xdpyinfo
name of display:    desktop_c:48.0
version number:    11.0
vendor string:    Citrix Systems Inc
vendor release number:    53034
maximum request size:  4194300 bytes
motion buffer size:  256
bitmap unit, bit order, padding:    32, MSBFirst, 32
image byte order:    MSBFirst
number of supported pixmap formats:    2
supported pixmap formats:
    depth 1, bits_per_pixel 1, scanline_pad 32
    depth 16, bits_per_pixel 16, scanline_pad 32
keycode range:    minimum 8, maximum 207
focus:  window 0x1400026, revert to PointerRoot
number of extensions:    10
    BIG-REQUESTS
    DOUBLE-BUFFER
    MIT-SHM
    MIT-SUNDRY-NONSTANDARD
    RECORD
    SECURITY
    SHAPE
    SYNC
    XC-MISC
    XTEST
default screen number:    0
number of screens:    1

screen #0:
  print screen:    no
  dimensions:    1440x1080 pixels (366x274 millimeters)
  resolution:    100x100 dots per inch
  depths (1):    16
  root window id:    0x26
  depth of root window:    16 planes
  number of colormaps:    minimum 1, maximum 1
  default colormap:    0x22
  default number of colormap cells:    64
  preallocated pixels:    black 0, white 32767
  options:    backing-store NO, save-unders NO
  largest cursor:    32x32
  current input event mask:    0xfa203f
    KeyPressMask             KeyReleaseMask           ButtonPressMask          
    ButtonReleaseMask        EnterWindowMask          LeaveWindowMask          
    ButtonMotionMask         StructureNotifyMask      SubstructureNotifyMask   
    SubstructureRedirectMask FocusChangeMask          PropertyChangeMask       
    ColormapChangeMask       
  number of visuals:    1
  default visual id:  0x23
  visual:
    visual id:    0x23
    class:    TrueColor
    depth:    16 planes
    available colormap entries:    64 per subfield
    red, green, blue masks:    0x7c00, 0x3e0, 0x1f
    significant bits in color specification:    8 bits
Comment 7 David Richards 2005-11-15 17:51:41 UTC
ping - Is there any leg work that I can do for this issue?  This is a blocker
for us to deploy any GTK 2.8 applications in our enterprise.  We use Citrix
Xservers in many sites.
Comment 8 Manish Singh 2005-11-15 18:04:27 UTC
It's time to build the GTK+ stack with debugging info, and retry the gdb stuff.
Comment 9 David Richards 2006-01-10 20:35:57 UTC
Ok, SL10 is back on the network with fresh install.  I tested GTK 2.8 apps to make sure they crash and they still do in 16 bit color.

I received instructions from Novell and installed the debuginfo packages and here is what was returned at the breakpoint.  Let me know please if you need more information....it's very easy for me to replicate this.

Starting program: /opt/gnome/bin/zenity --sync --info
Breakpoint 2 at 0x4051cebd: file gdkmain-x11.c, line 599.
Pending breakpoint "gdk_x_error" resolved

Breakpoint 2, gdk_x_error (display=0x806adb8, error=0xbff9f4fc) at gdkmain-x11.c:599
599       if (error->error_code)
  • #0 gdk_x_error
    at gdkmain-x11.c line 599
  • #1 _XError
    from /usr/X11R6/lib/libX11.so.6
  • #2 _XReply
    from /usr/X11R6/lib/libX11.so.6
  • #3 XSync
    from /usr/X11R6/lib/libX11.so.6
  • #4 XSync
    from /usr/X11R6/lib/libX11.so.6
  • #5 XShmAttach
    from /usr/X11R6/lib/libXext.so.6
  • #6 _gdk_image_new_for_depth
    at gdkimage-x11.c line 337
  • #7 allocate_scratch_images
    at gdkimage.c line 208
  • #8 _gdk_image_get_scratch
    at gdkimage.c line 255
  • #9 gdk_pixbuf_get_from_drawable
    at gdkpixbuf-drawable.c line 1299
  • #10 gdk_drawable_real_draw_pixbuf
    at gdkdraw.c line 1625
  • #11 gdk_x11_draw_pixbuf
    at gdkdrawable-x11.c line 1421
  • #12 gdk_draw_pixbuf
    at gdkdraw.c line 782
  • #13 gdk_pixmap_draw_pixbuf
    at gdkpixmap.c line 438
  • #14 gdk_draw_pixbuf
    at gdkdraw.c line 782
  • #15 gdk_pixbuf_render_pixmap_and_mask_for_colormap
    at gdkpixbuf-render.c line 308
  • #16 gtk_window_realize_icon
    at gtkwindow.c line 2587
  • #17 gtk_window_realize
    at gtkwindow.c line 4209
  • #18 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #19 g_type_class_meta_marshal
    at gclosure.c line 569
  • #20 g_closure_invoke
    at gclosure.c line 492
  • #21 signal_emit_unlocked_R
    at gsignal.c line 2415
  • #22 g_signal_emit_valist
    at gsignal.c line 2244
  • #23 g_signal_emit
    at gsignal.c line 2288
  • #24 gtk_widget_realize
    at gtkwidget.c line 2323
  • #25 zenity_util_show_dialog
    at util.c line 354
  • #26 zenity_msg
    at msg.c line 118
  • #27 main
    at main.c line 65
  • #28 __libc_start_main
    from /lib/tls/libc.so.6
  • #29 _start
    at start.S line 119

Comment 10 Federico Mena Quintero 2006-01-10 20:45:39 UTC
Just to confirm, are the following accurate:

1. The app is running in an Intel server
2. The X server is running on a thin client

What's the value of the $DISPLAY environment variable?  Is the info for xdpyinfo you posted above still accurate?

I'm puzzled that if you are running on a thin client (i.e. a remote X server), Gdk tries to use the X shared memory extension --- that's not available when running on a remote server.
Comment 11 David Richards 2006-01-10 21:05:22 UTC
The applications are running on Intel based Linux servers, yes.  The Xserver isn't  running on a thin client.  The Xserver is started inside the Citrix session on a Solaris/Sparc machine and then Linux remote displays over.  The reason why Citrix is used is because it does bandwidth compression of X to remote devices that don't have a high speed network by only transmitting pixels that change with high compression.  The connection between the Linux and Sparc servers is gigabit fiber optic.  It's a remote display, shared memory should not be used.

linux:~ # echo $DISPLAY
desktop_c:18.0
linux:~ # 

Each additional user comes from the same machine (desktop_c), but Citrix increments the middle number (18 in this case) with each new user that logs in.

Let me know if running the same command in 8, or 32 bit would help to see what's different.  Those color depths work fine.
Comment 12 Federico Mena Quintero 2006-01-10 21:30:47 UTC
Could you please attach the output of "xdpyinfo" for all the bit depths (8, 16, 24/32)?

So GTK+ 2.6 works fine in 16 bpp, right?
Comment 13 David Richards 2006-01-10 21:55:41 UTC
Bad news about that.  It appears that unpatched SL10 crashes in unrelated bugs in 8bit color depth.  They must be fixed in the patches that go on after install.  We didn't perform that step because I needed to have synced -debuginfo packages of glib and gtk2.  So I guess we have to make a decision about whether additional 'debuginfo' is needed.  If not, I'll put down all of the patches packages and get you the rest of the information.    I'll try and locate debuginfo packages for all of the patches, they don't come with the distribution.

GTK 2.6 and lower applications all work fine, many many years of service here.

Here is what gedit is reporting on unpatched 8bit color, probably fixed and just needs to be upgraded:
  • #0 ??
  • #1 _cairo_pixman_composite_tri_fan
    from /usr/lib/libcairo.so.2
  • #2 _cairo_pixman_composite_tri_fan
    from /usr/lib/libcairo.so.2
  • #3 _cairo_pixman_region_intersect
    from /usr/lib/libcairo.so.2
  • #4 cairo_image_surface_get_height
    from /usr/lib/libcairo.so.2
  • #5 cairo_surface_set_device_offset
    from /usr/lib/libcairo.so.2
  • #6 cairo_ft_scaled_font_lock_face
    from /usr/lib/libcairo.so.2
  • #7 cairo_scaled_font_destroy
    from /usr/lib/libcairo.so.2
  • #8 cairo_font_options_get_hint_metrics
    from /usr/lib/libcairo.so.2
  • #9 cairo_font_options_get_hint_metrics
    from /usr/lib/libcairo.so.2
  • #10 cairo_font_options_get_hint_metrics
    from /usr/lib/libcairo.so.2
  • #11 cairo_show_glyphs
    from /usr/lib/libcairo.so.2
  • #12 pango_cairo_renderer_draw_glyphs
    at pangocairo-render.c line 110
  • #13 pango_renderer_draw_glyphs
    at pango-renderer.c line 596
  • #14 pango_cairo_show_glyph_string
    at pangocairo-render.c line 296
  • #15 gdk_pango_renderer_draw_glyphs
    at gdkpango.c line 210
  • #16 pango_renderer_draw_glyphs
    at pango-renderer.c line 596
  • #17 pango_renderer_draw_layout_line
    at pango-renderer.c line 528
  • #18 pango_renderer_draw_layout
    at pango-renderer.c line 182
  • #19 gdk_draw_layout_with_colors
    at gdkpango.c line 989
  • #20 gdk_draw_layout
    at gdkpango.c line 1051
  • #21 gtk_default_draw_layout
    at gtkstyle.c line 5088
  • #22 gtk_paint_layout
    at gtkstyle.c line 6329
  • #23 gtk_label_expose
    at gtklabel.c line 2344
  • #24 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 83
  • #25 g_type_class_meta_marshal
    at gclosure.c line 569
  • #26 g_closure_invoke
    at gclosure.c line 492
  • #27 signal_emit_unlocked_R
    at gsignal.c line 2523
  • #28 g_signal_emit_valist
    at gsignal.c line 2254
  • #29 g_signal_emit
    at gsignal.c line 2288
  • #30 gtk_widget_event_internal
    at gtkwidget.c line 3735
  • #31 gtk_container_propagate_expose
    at gtkcontainer.c line 2461
  • #32 gtk_container_expose_child
    at gtkcontainer.c line 2349
  • #33 gtk_box_forall
    at gtkbox.c line 703
  • #34 gtk_container_forall
    at gtkcontainer.c line 1265
  • #35 gtk_container_expose
    at gtkcontainer.c line 2372
  • #36 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 83
  • #37 g_type_class_meta_marshal
    at gclosure.c line 569
  • #38 g_closure_invoke
    at gclosure.c line 492
  • #39 signal_emit_unlocked_R
    at gsignal.c line 2523
  • #40 g_signal_emit_valist
    at gsignal.c line 2254
  • #41 g_signal_emit
    at gsignal.c line 2288
  • #42 gtk_widget_event_internal
    at gtkwidget.c line 3735
  • #43 gtk_container_propagate_expose
    at gtkcontainer.c line 2461
  • #44 gtk_container_expose_child
    at gtkcontainer.c line 2349
  • #45 gtk_bin_forall
    at gtkbin.c line 166
  • #46 gtk_container_forall
    at gtkcontainer.c line 1265
  • #47 gtk_container_expose
    at gtkcontainer.c line 2372
  • #48 gtk_button_expose
    at gtkbutton.c line 1227
  • #49 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 83
  • #50 g_type_class_meta_marshal
    at gclosure.c line 569
  • #51 g_closure_invoke
    at gclosure.c line 492
  • #52 signal_emit_unlocked_R
    at gsignal.c line 2523
  • #53 g_signal_emit_valist
    at gsignal.c line 2254
  • #54 g_signal_emit
    at gsignal.c line 2288
  • #55 gtk_widget_event_internal
    at gtkwidget.c line 3735
  • #56 gtk_container_propagate_expose
    at gtkcontainer.c line 2461
  • #57 gtk_container_expose_child
    at gtkcontainer.c line 2349
  • #58 gtk_bin_forall
    at gtkbin.c line 166
  • #59 gtk_container_forall
    at gtkcontainer.c line 1265
  • #60 gtk_container_expose
    at gtkcontainer.c line 2372
  • #61 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 83
  • #62 g_type_class_meta_marshal
    at gclosure.c line 569
  • #63 g_closure_invoke
    at gclosure.c line 492
  • #64 signal_emit_unlocked_R
    at gsignal.c line 2523
  • #65 g_signal_emit_valist
    at gsignal.c line 2254
  • #66 g_signal_emit
    at gsignal.c line 2288
  • #67 gtk_widget_event_internal
    at gtkwidget.c line 3735
  • #68 gtk_container_propagate_expose
    at gtkcontainer.c line 2461
  • #69 gtk_toolbar_expose
    at gtktoolbar.c line 3996
  • #70 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 83
  • #71 g_type_class_meta_marshal
    at gclosure.c line 569
  • #72 g_closure_invoke
    at gclosure.c line 492
  • #73 signal_emit_unlocked_R
    at gsignal.c line 2523
  • #74 g_signal_emit_valist
    at gsignal.c line 2254
  • #75 g_signal_emit
    at gsignal.c line 2288
  • #76 gtk_widget_event_internal
    at gt#77 0x408d8c48 in gtk_container_propagate_expose (container=0x812d278, child=0x812e8a8, event=0xbfcb62a0) at gtkcontainer.c line 2461
  • #78 gtk_container_expose_child
    at gtkcontainer.c line 2349
  • #79 bonobo_dock_item_get_orientation
    from /opt/gnome/lib/libbonoboui-2.so.0
  • #80 gtk_container_forall
    at gtkcontainer.c line 1265
  • #81 gtk_container_expose
    at gtkcontainer.c line 2372
  • #82 bonobo_dock_item_get_orientation
    from /opt/gnome/lib/libbonoboui-2.so.0
  • #83 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 83
  • #84 g_type_class_meta_marshal
    at gclosure.c line 569
  • #85 g_closure_invoke
    at gclosure.c line 492
  • #86 signal_emit_unlocked_R
    at gsignal.c line 2523
  • #87 g_signal_emit_valist
    at gsignal.c line 2254
  • #88 g_signal_emit
    at gsignal.c line 2288
  • #89 gtk_widget_event_internal
    at gtkwidget.c line 3735
  • #90 gtk_main_do_event
    at gtkmain.c line 1356
  • #91 gdk_window_process_updates_internal
    at gdkwindow.c line 2215
  • #92 gdk_window_process_all_updates
    at gdkwindow.c line 2268
  • #93 gtk_container_idle_sizer
    at gtkcontainer.c line 1117
  • #94 g_idle_dispatch
    at gmain.c line 3813
  • #95 g_main_context_dispatch
    at gmain.c line 1934
  • #96 g_main_context_iterate
    at gmain.c line 2565
  • #97 g_main_context_iteration
    at gmain.c line 2624
  • #98 gtk_main_iteration
    at gtkmain.c line 1059
  • #99 POA_GNOME_Gedit_Application__fini
  • #100 gtk_main
    at gtkmain.c line 968
  • #101 main

Comment 14 Peter Bowen 2006-01-10 23:18:17 UTC
Latest build of GTK+ for SUSE Linux 10.0 is at http://primates.ximian.com/~pzb/gtk2-10.0/

This includes all the fixes in the released patches and the matching debuginfo package.
Comment 15 Federico Mena Quintero 2006-01-10 23:47:07 UTC
Cairo crashing on 8-bit pseudocolor visuals is a different bug.  Let's stick to the 16bpp shared memory issue here.  Can you please provide the output of "xdpyinfo" for all bit depths?
Comment 16 Matthias Clasen 2006-01-11 15:36:33 UTC
Federico, I think we always try to allocate a shared image first, and
the turn off xshm if we get an error. See gdkimage-x11.c:342

So David, please continue there, and see what the next X error is.
Comment 17 David Richards 2006-01-11 15:55:14 UTC
We were just getting ready to install the patches when this came in, so let's do this first.

I continued after the last breakpoint and then it stopped again and backtrace reported

(gdb) 
  • #0 gdk_x_error
    at gdkmain-x11.c line 599
  • #1 bonobo_ui_gtk_module_info_get
    from /opt/gnome/lib/libbonoboui-2.so.0
  • #2 _XError
    from /usr/X11R6/lib/libX11.so.6
  • #3 _XReply
    from /usr/X11R6/lib/libX11.so.6
  • #4 XSync
    from /usr/X11R6/lib/libX11.so.6
  • #5 XSync
    from /usr/X11R6/lib/libX11.so.6
  • #6 XPutImage
    from /usr/X11R6/lib/libX11.so.6
  • #7 cairo_test_xlib_disable_render
    from /usr/lib/libcairo.so.2
  • #8 ??
  • #9 ??
  • #10 ??
  • #11 ??
  • #12 ??
  • #13 ??
  • #14 ??
  • #15 ??
  • #16 ??
  • #17 ??
  • #18 ??
  • #19 ??
  • #20 ??
  • #21 ??
  • #22 ??
  • #23 ??
    from /usr/lib/libcairo.so.2
  • #24 ??
  • #25 ??
  • #26 ??
  • #27 cairo_test_xlib_disable_render
    from /usr/lib/libcairo.so.2
  • #28 ??
  • #29 ??
  • #30 ??
  • #31 cairo_surface_set_device_offset
    from /usr/lib/libcairo.so.2

Then a third 'cont' displays to the command line what I am seeing normally:
(gdb) cont
Continuing.
The program 'gedit' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadMatch (invalid parameter attributes)'.
  (Details: serial 1393 error_code 8 request_code 72 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 exited with code 01.
(gdb) 
Comment 18 Federico Mena Quintero 2006-01-11 18:46:42 UTC
Could you please install the debuginfo package for cairo as well, and re-run the test?  Do the same thing; ignore the first call to gdk_x_error if it is from within XShmAttach.
Comment 19 David Richards 2006-01-11 19:03:35 UTC
Done:

Breakpoint 2, gdk_x_error (display=0x80ca380, error=0xbfbe245c) at gdkmain-x11.c:599
599       if (error->error_code)
(gdb) backtrace
  • #0 gdk_x_error
    at gdkmain-x11.c line 599
  • #1 bonobo_ui_gtk_module_info_get
    from /opt/gnome/lib/libbonoboui-2.so.0
  • #2 _XError
    from /usr/X11R6/lib/libX11.so.6
  • #3 _XReply
    from /usr/X11R6/lib/libX11.so.6
  • #4 XSync
    from /usr/X11R6/lib/libX11.so.6
  • #5 XSync
    from /usr/X11R6/lib/libX11.so.6
  • #6 XPutImage
    from /usr/X11R6/lib/libX11.so.6
  • #7 _draw_image_surface
    at cairo-xlib-surface.c line 573
  • #8 _cairo_xlib_surface_release_dest_image
    at cairo-xlib-surface.c line 644
  • #9 _cairo_surface_release_dest_image
    at cairo-surface.c line 661
  • #10 _fallback_fini
    at cairo-surface.c line 771
  • #11 _cairo_surface_fill_rectangles
    at cairo-surface.c line 1015
  • #12 _cairo_surface_fill_region
    at cairo-surface.c line 938
  • #13 _cairo_surface_clip_and_composite_trapezoids
    at cairo-gstate.c line 1478
  • #14 _cairo_gstate_clip_and_composite_trapezoids
    at cairo-gstate.c line 1544
  • #15 _cairo_gstate_fill
    at cairo-gstate.c line 1590
  • #16 *INT_cairo_fill_preserve
    at cairo.c line 1598
  • #17 cairo_fill
    at cairo.c line 1576
  • #18 gdk_window_clear_backing_rect
    at gdkwindow.c line 1790
  • #19 gdk_window_begin_paint_region
    at gdkwindow.c line 991
  • #20 gtk_main_do_event
    at gtkmain.c line 1355
  • #21 gdk_window_process_updates_internal
    at gdkwindow.c line 2215
  • #22 gdk_window_process_all_updates
    at gdkwindow.c line 2268
  • #23 gtk_container_idle_sizer
    at gtkcontainer.c line 1117
  • #24 g_idle_dispatch
    at gmain.c line 3813
  • #25 g_main_context_dispatch
    at gmain.c line 1934
  • #26 g_main_context_iterate
    at gmain.c line 2565
  • #27 g_main_context_iteration
    at gmain.c line 2624
  • #28 gtk_main_iteration
    at gtkmain.c line 1059
  • #29 POA_GNOME_Gedit_Application__fini
  • #30 gtk_main
    at gtkmain.c line 968
  • #31 main

Comment 20 David Richards 2006-01-11 19:14:09 UTC
Created attachment 57173 [details]
Requested, 8 bit color xdpyinfo for Citrix Metaframe for Unix

(setting up 24 and 32 bit workstations how to get similar information)
Comment 21 Federico Mena Quintero 2006-01-11 19:59:58 UTC
Why is dst_y a huge number in frame 7?
Comment 22 David Richards 2006-01-13 15:05:06 UTC
All-
   I need some help in the best way to proceed with Metaframe and holding bug information.  I have fully patched SL10 for the first time.  I have just finished doing some additional testing with the Citrix Xserver with SL10/GTK 2.8.   Cairo has been updated to 1.0.2.

The results:

8 bit - GTK applications crash immediately with what appears to be Cairo errors.  Those errors are different than 16bit.

16 bit - GTK applications crash immediately with the information posted in this bug report.  

24 bit - GTK applications run, but are just horribly slow.  They take a LONG time to open, and then a long time to repaint.  The pulldowns take several seconds to paint, and then when you move to the next pulldown, the first pulldown leaves a ghost image on the screen for many seconds before the new one repaints.

I tested GTK 2.6 and lower applications in all 3 depths and they work perfectly.  We have all of these depths in production and would have noticed problems earlier.

My question, should I break out 3 unique bugs...one for each color depth and go from there?  I can then merge in the appropriate information that you have all helped me discover into the right color depths.  It seems to me that we have 3 different issues, yet they are all related.

I got the 24 bit xdpyinfo and attaching.
Comment 23 David Richards 2006-01-13 15:05:51 UTC
Created attachment 57284 [details]
Requested, 24 bit color xdpyinfo for Citrix Metaframe for Unix
Comment 24 Federico Mena Quintero 2006-01-13 18:59:14 UTC
(In reply to comment #22)
 
> 8 bit - GTK applications crash immediately with what appears to be Cairo
> errors.  Those errors are different than 16bit.
> 
> 16 bit - GTK applications crash immediately with the information posted in this
> bug report.  
> 
> 24 bit - GTK applications run, but are just horribly slow.  They take a LONG
> time to open, and then a long time to repaint.  The pulldowns take several
> seconds to paint, and then when you move to the next pulldown, the first
> pulldown leaves a ghost image on the screen for many seconds before the new one
> repaints.

These are totally different bugs, so let's keep them separate.  Feel free to file bugs for the other two.

8-bit is "Cairo and XRender just don't support it"

16-bit is the bug we are tracking here.

24-bit is most likely that your X terminal doesn't support the RENDER extension, so apps have to pull images from the server constantly in order to do client-side compositing (indeed, your xdpyinfo doesn't show the RENDER extension).  This is going to be horribly slow.  xvnc could be a reasonable solution.
Comment 25 David Richards 2006-01-13 19:14:46 UTC
All, I'm going to split this into 3 bugs and will do that next week when I return to the office.  I'll close out this original bug because it contains information for multiple bugs.

Xvnc isn't a good enough fit for us, not enough client platforms, not easy enough for users to configure at their homes, not good enough bandwidth compression.

Peter, all of these issues would have to be fixed and working for us to consider SL10/NLD10 for desktops.  Everything that we have in place pre-GTK 2.8 is blazingly fast.

I have run GTK 2.8 apps on our old thin clients with RENDER missing and it's not anywhere near as slow as it is on Metaframe. 
Comment 26 Peter Bowen 2006-01-14 18:52:54 UTC
This bug has good info on the issues when running with 16-bit visuals on metaframe.  Other bugs should be opened on the 8-bit and 24-bit visuals issues, but please let this one open for 16-bit issues.
Comment 27 David Richards 2006-01-23 20:25:31 UTC
Novell logged into our system and recreated and pushed the changes into Cairo and 16bit is working now. Thanks to JPR for the effort.  Verified with new RPM from Novell and working.   Opening 8 and 24bit issues to track the other problems.