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 331326 - crash with long string in entry completion
crash with long string in entry completion
Status: RESOLVED NOTGNOME
Product: pango
Classification: Platform
Component: general
unspecified
Other Linux
: Normal critical
: ---
Assigned To: pango-maint
pango-maint
Depends on:
Blocks:
 
 
Reported: 2006-02-15 21:22 UTC by Christian Persch
Modified: 2006-02-16 14:21 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
testcase as patch against testentrycompletion.c (819 bytes, text/plain)
2006-02-15 21:23 UTC, Christian Persch
Details

Description Christian Persch 2006-02-15 21:22:47 UTC
This is either a pango problem, or cairo...

Steps to reproduce:
0) Apply attached patch to gtk+/tests/testentrycompletion.c
1) Compile & run
2) In the first entry in the testentrcompletion window, type "gg" (without quotes).

Result:

Gdk-ERROR **: The program 'lt-testentrycompletion' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadLength (poly request too large or internal Xlib length erro'.
  (Details: serial 648 error_code 16 request_code 8 minor_code 0)

  • #0 gdk_x_error
    at gdkmain-x11.c line 599
  • #1 _XError
    at ../../src/XlibInt.c line 2888
  • #2 _XWaitForWritable
    at ../../src/XlibInt.c line 346
  • #3 _XFlushInt
    at ../../src/XlibInt.c line 680
  • #4 XRenderCompositeText8
    at ../../src/Glyph.c line 480
  • #5 _cairo_xlib_surface_old_show_glyphs
    at cairo-xlib-surface.c line 2249
  • #6 _cairo_surface_old_show_glyphs
    at cairo-surface.c line 1441
  • #7 _cairo_surface_old_show_glyphs_draw_func
    at cairo-surface-fallback.c line 874
  • #8 _clip_and_composite
    at cairo-surface-fallback.c line 391
  • #9 _cairo_surface_fallback_show_glyphs
    at cairo-surface-fallback.c line 937
  • #10 _cairo_surface_show_glyphs
    at cairo-surface.c line 1406
  • #11 _cairo_gstate_show_glyphs
    at cairo-gstate.c line 1471
  • #12 cairo_show_glyphs
    at cairo.c line 2158
  • #13 pango_cairo_renderer_draw_glyphs
    at pangocairo-render.c line 183
  • #14 pango_renderer_draw_glyphs
    at pango-renderer.c line 599
  • #15 pango_renderer_draw_layout_line
    at pango-renderer.c line 530
  • #16 pango_renderer_draw_layout
    at pango-renderer.c line 183
  • #17 pango_cairo_show_layout
    at pangocairo-render.c line 475
  • #18 gtk_entry_expose
    at gtkentry.c line 3210
  • #19 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 83
  • #20 g_type_class_meta_marshal
    at gclosure.c line 567
  • #21 g_closure_invoke
    at gclosure.c line 490
  • #22 signal_emit_unlocked_R
    at gsignal.c line 2476
  • #23 g_signal_emit_valist
    at gsignal.c line 2207
  • #24 g_signal_emit
    at gsignal.c line 2241
  • #25 gtk_widget_event_internal
    at gtkwidget.c line 3746
  • #26 gtk_main_do_event
    at gtkmain.c line 1368
  • #27 gdk_window_process_updates_internal
    at gdkwindow.c line 2220
  • #28 gdk_window_process_all_updates
    at gdkwindow.c line 2273
  • #29 gdk_window_update_idle
    at gdkwindow.c line 2141
  • #30 g_idle_dispatch
    at gmain.c line 3796
  • #31 g_main_context_dispatch
    at gmain.c line 1916
  • #32 g_main_context_iterate
    at gmain.c line 2547
  • #33 g_main_loop_run
    at gmain.c line 2751
  • #34 gtk_main
    at gtkmain.c line 989
  • #35 main
    at testentrycompletion.c line 448

gtk+, pango, cairo from cvs.
Comment 1 Christian Persch 2006-02-15 21:23:13 UTC
Created attachment 59432 [details]
testcase as patch against testentrycompletion.c
Comment 2 Owen Taylor 2006-02-16 02:23:39 UTC
How could Pango cause an X error? (You need --sync to get a decent
backtrace, but doesn't change that it really can't be a Pango 
problem.)

Comment 3 Christian Persch 2006-02-16 12:17:31 UTC
That trace is already with --sync.

It might be a cairo problem, or a problem with what pango is passing to cairo. I don't know, that's why I let you figure it out :)
Comment 4 Owen Taylor 2006-02-16 14:21:24 UTC
If cairo is non-buggy, there will be no way to force it to generate
an X error by passing it too long input or whatever.