Bug#680277: evince: segfault when printing certain pages (but okay when printing to ps file)

Selim T. Erdogan selim at alumni.cs.utexas.edu
Thu Jul 5 15:22:59 UTC 2012


On Wed, Jul 04, 2012 at 09:52:06PM +0200, Michael Biebl wrote:
> On 04.07.2012 20:39, Selim T. Erdogan wrote:
> > Package: evince
> > Version: 3.4.0-2+b1
> > Severity: normal
> > 
> > Evince segfaults when I try to print page 1 of file f1040sd.pdf (attached).
> > Page 2 prints okay.  This also happens on some other files/pages, which 
> > I can provide if needed.
> > 
> > If I choose print to file and select pdf, it still segfaults.  However,
> > if I select ps, it prints fine.  Then I can open the ps file in evince 
> > and send to the printer without any problem.
> > 
> 
> Might be another of those cairo 1.12 regressions.
> I myself noticed several issues with printing PDF files with evince and
> cairo 1.12.
> See
> https://bugs.freedesktop.org/show_bug.cgi?id=51443
> and specifically
> https://bugs.freedesktop.org/show_bug.cgi?id=51443#c24
> 
> Would be nice if you install the evince-dbg and libcairo2-dbg debug
> package and get us a back trace.
> The steps are basically:
> - Install gdb
> - Run "gdb /usr/bin/evince"
> - type "set logging on"
> - type "run path/to/pdf"
> - print the document → leads to the crash
> - run "bt full" in gdb
> 
> Attach gdb.txt to the bug report.

Yes, looks very similar to the backtrace in the bug report link you gave.

My gdb.txt is attached.

Selim
-------------- next part --------------
Starting program: /usr/bin/evince f1040sd.pdf
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/i686/cmov/libthread_db.so.1".
[New Thread 0xb68ecb70 (LWP 24625)]
[New Thread 0xb60ebb70 (LWP 24626)]
[New Thread 0xb58eab70 (LWP 24627)]
[Thread 0xb58eab70 (LWP 24627) exited]
[New Thread 0xb58eab70 (LWP 24633)]
[New Thread 0xaf98bb70 (LWP 24634)]
[Thread 0xb60ebb70 (LWP 24626) exited]
[New Thread 0xb60ebb70 (LWP 24638)]

Program received signal SIGSEGV, Segmentation fault.
decode_integer (p=0x0, integer=integer at entry=0xbfffee00)
    at /build/buildd-cairo_1.12.2-2-i386-1cmzkR/cairo-1.12.2/src/cairo-cff-subset.c:241
241	/build/buildd-cairo_1.12.2-2-i386-1cmzkR/cairo-1.12.2/src/cairo-cff-subset.c: Böyle bir dosya ya da dizin yok.
#0  decode_integer (p=0x0, integer=integer at entry=0xbfffee00)
    at /build/buildd-cairo_1.12.2-2-i386-1cmzkR/cairo-1.12.2/src/cairo-cff-subset.c:241
No locals.
#1  0xb7757e60 in cairo_cff_font_read_top_dict (font=0x863c170)
    at /build/buildd-cairo_1.12.2-2-i386-1cmzkR/cairo-1.12.2/src/cairo-cff-subset.c:1185
        index = {size = 1, num_elements = 1, element_size = 12, 
          elements = 0x861f8a8 ""}
        element = <optimized out>
        buf = "Q^U\b\364\357%\267\300\003&\267\000\000\000\000\364\357}\267"
        operand = <optimized out>
        status = CAIRO_INT_STATUS_SUCCESS
        p = 0x8555fed "\213\213\371\211\213\006\373w\213\a\273\n\273\v"
        size = <optimized out>
        offset = 335
#2  0xb77595fb in cairo_cff_font_read_font (font=0x863c170)
    at /build/buildd-cairo_1.12.2-2-i386-1cmzkR/cairo-1.12.2/src/cairo-cff-subset.c:1321
        i = <optimized out>
        status = <optimized out>
#3  cairo_cff_font_generate (length=<synthetic pointer>, 
    data=<synthetic pointer>, font=0x863c170)
    at /build/buildd-cairo_1.12.2-2-i386-1cmzkR/cairo-1.12.2/src/cairo-cff-subset.c:2545
        status = <optimized out>
#4  _cairo_cff_subset_init (cff_subset=cff_subset at entry=0xbffff040, 
    subset_name=subset_name at entry=0xbffff08c "CairoFont-4-0", 
    font_subset=font_subset at entry=0xbffff140)
    at /build/buildd-cairo_1.12.2-2-i386-1cmzkR/cairo-1.12.2/src/cairo-cff-subset.c:2928
        font = <optimized out>
        status = <optimized out>
        data = 0x0
        length = 0
        i = <optimized out>
#5  0xb779cd6b in _cairo_pdf_surface_emit_cff_font_subset (
    font_subset=0xbffff140, surface=0x86ea370)
    at /build/buildd-cairo_1.12.2-2-i386-1cmzkR/cairo-1.12.2/src/cairo-pdf-surface.c:4884
        status = <optimized out>
        subset = {family_name_utf8 = 0x0, 
          ps_name = 0x8359b50 "@;n\b\360\215b\blStd-NewswithCom ", 
          widths = 0x85dc208, x_min = -0.0070000000000000001, 
          y_min = -0.22700000000000001, x_max = 0.98899999999999999, 
          y_max = 0.76400000000000001, ascent = 0.76400000000000001, 
          descent = -0.22700000000000001, 
          data = 0x86d8000 "\370\317\\\b\240\250l\b", data_length = 568}
        name = "CairoFont-4-0\000#\267?\264u\267\370\063k\b\b\004\000\000\001\000\000\000\n\020p\267\364\357}\267\002\000\000\000\070\320_\b\275\027p\267\270\254c\b`\315z\267\350\360\377\277"
#6  _cairo_pdf_surface_emit_unscaled_font_subset (font_subset=0xbffff140, 
    closure=0x86ea370)
    at /build/buildd-cairo_1.12.2-2-i386-1cmzkR/cairo-1.12.2/src/cairo-pdf-surface.c:5596
        surface = 0x86ea370
        status = CAIRO_INT_STATUS_SUCCESS
#7  0xb775ad9a in _cairo_sub_font_collect (closure=0xbffff114, entry=0x85f6200)
    at /build/buildd-cairo_1.12.2-2-i386-1cmzkR/cairo-1.12.2/src/cairo-scaled-font-subsets.c:751
        sub_font = 0x85f6200
        collection = 0xbffff114
        subset = {scaled_font = 0x86e9278, font_id = 4, subset_id = 0, 
          glyphs = 0x85c9800, utf8 = 0x8592800, glyph_names = 0x0, 
          to_latin_char = 0x8606a00, latin_to_subset_glyph_index = 0x851e608, 
          num_glyphs = 2, is_composite = 1, is_scaled = 0, is_latin = 1}
        i = <optimized out>
        j = <optimized out>
#8  _cairo_scaled_font_subsets_foreach_internal (
    font_subsets=font_subsets at entry=0x86ea370, 
    font_subset_callback=font_subset_callback at entry=0, closure=0x86ea370, 
    type=CAIRO_SUBSETS_FOREACH_UNSCALED)
    at /build/buildd-cairo_1.12.2-2-i386-1cmzkR/cairo-1.12.2/src/cairo-scaled-font-subsets.c:1072
        collection = {glyphs = 0x85c9800, utf8 = 0x8592800, glyphs_size = 61, 
          to_latin_char = 0x8606a00, latin_to_subset_glyph_index = 0x851e608, 
          max_glyph = 1, num_glyphs = 2, subset_id = 0, 
          status = CAIRO_STATUS_SUCCESS, 
          font_subset_callback = 0xb779ccc0 <_cairo_pdf_surface_emit_unscaled_font_subset>, font_subset_callback_closure = 0x86ea370}
        sub_font = 0x85f6200
        is_scaled = <optimized out>
        is_user = 0
#9  0xb775c00d in _cairo_scaled_font_subsets_foreach_unscaled (
    font_subsets=0x86ea370, font_subset_callback=0, 
    font_subset_callback at entry=0xb779ccc0 <_cairo_pdf_surface_emit_unscaled_font_subset>, closure=closure at entry=0x86ea370)
    at /build/buildd-cairo_1.12.2-2-i386-1cmzkR/cairo-1.12.2/src/cairo-scaled-font-subsets.c:1100
No locals.
#10 0xb779a280 in _cairo_pdf_surface_emit_font_subsets (surface=0x86ea370)
    at /build/buildd-cairo_1.12.2-2-i386-1cmzkR/cairo-1.12.2/src/cairo-pdf-surface.c:5646
        status = CAIRO_STATUS_SUCCESS
#11 _cairo_pdf_surface_finish (abstract_surface=0x86ea370)
    at /build/buildd-cairo_1.12.2-2-i386-1cmzkR/cairo-1.12.2/src/cairo-pdf-surface.c:1959
        surface = 0x86ea370
        offset = 0
        info = <optimized out>
        catalog = <optimized out>
        status = CAIRO_STATUS_SUCCESS
        status2 = <optimized out>
#12 0xb773c629 in _cairo_surface_finish (surface=surface at entry=0x86ea370)
    at /build/buildd-cairo_1.12.2-2-i386-1cmzkR/cairo-1.12.2/src/cairo-surface.c:919
        status = <optimized out>
        __PRETTY_FUNCTION__ = "_cairo_surface_finish"
#13 0xb773cb5f in INT_cairo_surface_finish (surface=0x86ea370)
    at /build/buildd-cairo_1.12.2-2-i386-1cmzkR/cairo-1.12.2/src/cairo-surface.c:963
No locals.
#14 0xb7713a16 in _cairo_paginated_surface_finish (abstract_surface=0x86e99c8)
    at /build/buildd-cairo_1.12.2-2-i386-1cmzkR/cairo-1.12.2/src/cairo-paginated-surface.c:213
        surface = 0x86e99c8
        status = CAIRO_STATUS_SUCCESS
#15 0xb773c629 in _cairo_surface_finish (surface=surface at entry=0x86e99c8)
    at /build/buildd-cairo_1.12.2-2-i386-1cmzkR/cairo-1.12.2/src/cairo-surface.c:919
        status = <optimized out>
        __PRETTY_FUNCTION__ = "_cairo_surface_finish"
#16 0xb773cb5f in INT_cairo_surface_finish (surface=0x86e99c8)
    at /build/buildd-cairo_1.12.2-2-i386-1cmzkR/cairo-1.12.2/src/cairo-surface.c:963
No locals.
#17 0xb7c0f617 in ?? () from /usr/lib/i386-linux-gnu/libgtk-3.so.0
No symbol table info available.
#18 0xb7ad7fbd in ?? () from /usr/lib/i386-linux-gnu/libgtk-3.so.0
No symbol table info available.
#19 0xb789ac3e in ?? () from /usr/lib/i386-linux-gnu/libgdk-3.so.0
No symbol table info available.
#20 0xb73030f0 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#21 0xb7305633 in g_main_context_dispatch ()
   from /lib/i386-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#22 0xb73059d0 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#23 0xb7305e2b in g_main_loop_run () from /lib/i386-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#24 0xb7a8f64d in gtk_main () from /usr/lib/i386-linux-gnu/libgtk-3.so.0
No symbol table info available.
#25 0x0805f401 in main (argc=1, argv=0xbffff584)
    at /build/buildd-evince_3.4.0-2+b1-i386-Xbt3ZA/evince-3.4.0/./shell/main.c:329
        context = <optimized out>
        error = 0x0
A debugging session is active.

	Inferior 1 [process 24622] will be killed.

Quit anyway? (y or n) 


More information about the pkg-gnome-maintainers mailing list