Bug 16529 - evince crashes in FT_Done_Face when reloading documents since the bug #15302 change
Summary: evince crashes in FT_Done_Face when reloading documents since the bug #15302 ...
Status: RESOLVED FIXED
Alias: None
Product: poppler
Classification: Unclassified
Component: cairo backend (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: poppler-bugs
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-06-26 01:49 UTC by Sebastien Bacher
Modified: 2009-03-30 08:00 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Sebastien Bacher 2008-06-26 01:49:48 UTC
the change on bug #15302 fixed the printing issue described but now evince crashes sometimes when reloading documents

(gdb) bt
#0  FT_Done_Face (face=0xb455dd48) at
/build/buildd/freetype-2.3.6/freetype-2.3.6/src/base/ftobjs.c:2020
#1  0xb75ceb0d in _ft_done_face (data=0xb455dd48) at CairoFontEngine.cc:37
#2  0xb74601b0 in _cairo_user_data_array_fini (array=0xb455dc7c) at
/build/buildd/cairo-1.6.4/src/cairo-array.c:378
#3  0xb74640b3 in *INT_cairo_font_face_destroy (font_face=0xb455dc70) at
/build/buildd/cairo-1.6.4/src/cairo-font-face.c:144
#4  0xb74aa8b0 in _cairo_ft_unscaled_font_destroy (abstract_font=0xb455e010) at
/build/buildd/cairo-1.6.4/src/cairo-ft-font.c:495
#5  0xb7463e98 in _cairo_unscaled_font_destroy (unscaled_font=0xb455e010) at
/build/buildd/cairo-1.6.4/src/cairo-font-face.c:531
#6  0xb74717e7 in _cairo_scaled_font_fini (scaled_font=0xb4560210) at
/build/buildd/cairo-1.6.4/src/cairo-scaled-font.c:587
#7  0xb74718ac in *INT_cairo_scaled_font_destroy (scaled_font=0xb455e0e8) at
/build/buildd/cairo-1.6.4/src/cairo-scaled-font.c:843
#8  0xb75ce0ff in CairoFont::getSubstitutionCorrection (this=0xb44046a0,
gfxFont=0x83f0870) at CairoFontEngine.cc:307
#9  0xb75d1f4f in CairoOutputDev::updateFont (this=0x8411a60, state=0x84405f8)
at CairoOutputDev.cc:390
#10 0xb6d0d0c2 in Gfx::opShowSpaceText () from /usr/lib/libpoppler.so.3
#11 0xb6d08e02 in Gfx::execOp () from /usr/lib/libpoppler.so.3
#12 0xb6d0905f in Gfx::go () from /usr/lib/libpoppler.so.3
#13 0xb6d0c1bf in Gfx::display () from /usr/lib/libpoppler.so.3
#14 0xb6d551cd in Page::displaySlice () from /usr/lib/libpoppler.so.3
#15 0xb75ca01a in _poppler_page_render (page=0x83bd518, cairo=0x83edda0,
printing=0) at poppler-page.cc:529
#16 0xb75ca157 in poppler_page_render (page=0x83bd518, cairo=0x83edda0) at
poppler-page.cc:550

corresponding valgrind log

==30405== Invalid read of size 4
==30405==    at 0x507AF64: FT_Done_Face (ftobjs.c:2017)
==30405==    by 0x494EB0C: _ZL13_ft_done_facePv (CairoFontEngine.cc:37)
==30405==    by 0x4A661AF: _cairo_user_data_array_fini (cairo-array.c:378)
==30405==    by 0x4A6A0B2: cairo_font_face_destroy (cairo-font-face.c:144)
==30405==    by 0x4AB08AF: _cairo_ft_unscaled_font_destroy
(cairo-ft-font.c:495)
==30405==    by 0x4A69E97: _cairo_unscaled_font_destroy (cairo-font-face.c:531)
==30405==    by 0x4A777E6: _cairo_scaled_font_fini (cairo-scaled-font.c:587)
==30405==    by 0x4A778AB: cairo_scaled_font_destroy (cairo-scaled-font.c:843)
==30405==    by 0x4A6B4E7: _cairo_gstate_unset_scaled_font
(cairo-gstate.c:1219)
==30405==    by 0x4A6B53D: _cairo_gstate_set_font_face (cairo-gstate.c:1492)
==30405==    by 0x4A634CE: cairo_set_font_face (cairo.c:2688)
==30405==    by 0x4951F2D: CairoOutputDev::updateFont(GfxState*)
(CairoOutputDev.cc:383)
==30405==  Address 0x70758d8 is 16 bytes inside a block of size 84 free'd
==30405==    at 0x4023B4A: free (vg_replace_malloc.c:323)
==30405==    by 0x4B455B5: g_free (gmem.c:190)
==30405==    by 0x4A3CFB9: pango_parse_markup (in
/usr/lib/libpango-1.0.so.0.2101.2)
==30405==    by 0x458C796: (within /usr/lib/libgtk-x11-2.0.so.0.1303.0)
==30405==    by 0x4AD34CE: g_object_set_property (gobject.c:697)
==30405==    by 0x460A784: (within /usr/lib/libgtk-x11-2.0.so.0.1303.0)
==30405==    by 0x4610904: (within /usr/lib/libgtk-x11-2.0.so.0.1303.0)
==30405==    by 0x4610F04: (within /usr/lib/libgtk-x11-2.0.so.0.1303.0)
==30405==    by 0x49735DA: (within /usr/lib/libgdk-x11-2.0.so.0.1303.0)
==30405==    by 0x4B3B540: g_idle_dispatch (gmain.c:4168)
==30405==    by 0x4B3D437: g_main_context_dispatch (gmain.c:2063)
==30405==    by 0x4B4099A: g_main_context_iterate (gmain.c:2696)
==30405== 
==30405== Invalid read of size 4
==30405==    at 0x507A68F: FT_List_Find (ftutil.c:250)
==30405==    by 0x507AF88: FT_Done_Face (ftobjs.c:2023)
==30405==    by 0x494EB0C: _ZL13_ft_done_facePv (CairoFontEngine.cc:37)
==30405==    by 0x4A661AF: _cairo_user_data_array_fini (cairo-array.c:378)
==30405==    by 0x4A6A0B2: cairo_font_face_destroy (cairo-font-face.c:144)
==30405==    by 0x4AB08AF: _cairo_ft_unscaled_font_destroy
(cairo-ft-font.c:495)
==30405==    by 0x4A69E97: _cairo_unscaled_font_destroy (cairo-font-face.c:531)
==30405==    by 0x4A777E6: _cairo_scaled_font_fini (cairo-scaled-font.c:587)
==30405==    by 0x4A778AB: cairo_scaled_font_destroy (cairo-scaled-font.c:843)
==30405==    by 0x4A6B4E7: _cairo_gstate_unset_scaled_font
(cairo-gstate.c:1219)
==30405==    by 0x4A6B53D: _cairo_gstate_set_font_face (cairo-gstate.c:1492)
==30405==    by 0x4A634CE: cairo_set_font_face (cairo.c:2688)
==30405==  Address 0x5d8928f4 is not stack'd, malloc'd or (recently) free'd
==30405== 
==30405== Process terminating with default action of signal 11 (SIGSEGV)
==30405==  Access not within mapped region at address 0x5D8928F4
==30405==    at 0x507A68F: FT_List_Find (ftutil.c:250)
==30405==    by 0x507AF88: FT_Done_Face (ftobjs.c:2023)
==30405==    by 0x494EB0C: _ZL13_ft_done_facePv (CairoFontEngine.cc:37)
==30405==    by 0x4A661AF: _cairo_user_data_array_fini (cairo-array.c:378)
==30405==    by 0x4A6A0B2: cairo_font_face_destroy (cairo-font-face.c:144)
==30405==    by 0x4AB08AF: _cairo_ft_unscaled_font_destroy
(cairo-ft-font.c:495)
==30405==    by 0x4A69E97: _cairo_unscaled_font_destroy (cairo-font-face.c:531)
==30405==    by 0x4A777E6: _cairo_scaled_font_fini (cairo-scaled-font.c:587)
==30405==    by 0x4A778AB: cairo_scaled_font_destroy (cairo-scaled-font.c:843)
==30405==    by 0x4A6B4E7: _cairo_gstate_unset_scaled_font
(cairo-gstate.c:1219)
==30405==    by 0x4A6B53D: _cairo_gstate_set_font_face (cairo-gstate.c:1492)
==30405==    by 0x4A634CE: cairo_set_font_face (cairo.c:2688)

the issue seems similar to the one described on http://lists.freedesktop.org/archives/poppler/2008-June/003900.html
Comment 1 Carlos Garcia Campos 2008-06-26 02:03:20 UTC
Yes, that patch is now in git master, so the problem should be fixed now. Could you confirm it, please?
Comment 2 Sebastian Breier 2009-03-30 08:00:36 UTC
Judging from 0.10.4-2ubuntu1 in Ubuntu 9.04 Beta, this is fixed (and I've not encountered the bug for a looong time).

Thanks!


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.