[cairo-bugs] [Bug 105746] New: SIGABRT in _cairo_ft_unscaled_font_create_internal

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Mon Mar 26 11:18:11 UTC 2018


https://bugs.freedesktop.org/show_bug.cgi?id=105746

            Bug ID: 105746
           Summary: SIGABRT in _cairo_ft_unscaled_font_create_internal
           Product: cairo
           Version: unspecified
          Hardware: x86-64 (AMD64)
                OS: Linux (All)
            Status: NEW
          Severity: normal
          Priority: medium
         Component: freetype font backend
          Assignee: david at freetype.org
          Reporter: raul at rmr.ninja
        QA Contact: cairo-bugs at cairographics.org

Testing with the current master (`1ed124ace  Fix a 'memory leak' in the image
compositor`) I'm getting a SIGABRT when running Mapnik's visual test.

Here is the callstack:
```
==15411== Process terminating with default action of signal 6 (SIGABRT):
dumping core
==15411==    at 0x9567860: raise (in /usr/lib/libc-2.26.so)
==15411==    by 0x9568EC8: abort (in /usr/lib/libc-2.26.so)
==15411==    by 0x95600BB: __assert_fail_base (in /usr/lib/libc-2.26.so)
==15411==    by 0x9560132: __assert_fail (in /usr/lib/libc-2.26.so)
==15411==    by 0x61F0616: _cairo_ft_unscaled_font_create_internal
(cairo-ft-font.c:576)
==15411==    by 0x61F0616: _cairo_ft_unscaled_font_create_from_face
(cairo-ft-font.c:643)
==15411==    by 0x61F0616: cairo_ft_font_face_create_for_ft_face
(cairo-ft-font.c:3707)
==15411==    by 0x545BA7C:
mapnik::cairo_face::cairo_face(std::shared_ptr<mapnik::font_library> const&,
std::shared_ptr<mapnik::font_face> const&) (cairo_context.cpp:39)
==15411==    by 0x545CDD2: construct<mapnik::cairo_face,
std::shared_ptr<mapnik::font_library> &, std::shared_ptr<mapnik::font_face> &>
(new_allocator.h:136)
==15411==    by 0x545CDD2: construct<mapnik::cairo_face,
std::shared_ptr<mapnik::font_library> &, std::shared_ptr<mapnik::font_face> &>
(alloc_traits.h:475)
==15411==    by 0x545CDD2:
_Sp_counted_ptr_inplace<std::shared_ptr<mapnik::font_library> &,
std::shared_ptr<mapnik::font_face> &> (shared_ptr_base.h:526)
==15411==    by 0x545CDD2: __shared_count<mapnik::cairo_face,
std::allocator<mapnik::cairo_face>, std::shared_ptr<mapnik::font_library> &,
std::shared_ptr<mapnik::font_face> &> (shared_ptr_base.h:637)
==15411==    by 0x545CDD2: __shared_ptr<std::allocator<mapnik::cairo_face>,
std::shared_ptr<mapnik::font_library> &, std::shared_ptr<mapnik::font_face> &>
(shared_ptr_base.h:1294)
==15411==    by 0x545CDD2: shared_ptr<std::allocator<mapnik::cairo_face>,
std::shared_ptr<mapnik::font_library> &, std::shared_ptr<mapnik::font_face> &>
(shared_ptr.h:344)
==15411==    by 0x545CDD2: allocate_shared<mapnik::cairo_face,
std::allocator<mapnik::cairo_face>, std::shared_ptr<mapnik::font_library> &,
std::shared_ptr<mapnik::font_face> &> (shared_ptr.h:690)
==15411==    by 0x545CDD2: make_shared<mapnik::cairo_face,
std::shared_ptr<mapnik::font_library> &, std::shared_ptr<mapnik::font_face> &>
(shared_ptr.h:706)
==15411==    by 0x545CDD2:
mapnik::cairo_face_manager::get_face(std::shared_ptr<mapnik::font_face>)
(cairo_context.cpp:526)
==15411==    by 0x545CAD0:
mapnik::cairo_context::set_font_face(mapnik::cairo_face_manager&,
std::shared_ptr<mapnik::font_face>) (cairo_context.cpp:374)
==15411==    by 0x545D335:
mapnik::cairo_context::add_text(mapnik::glyph_positions const&,
mapnik::cairo_face_manager&, mapnik::composite_mode_e,
mapnik::composite_mode_e, double) (cairo_context.cpp:469)
==15411==    by 0x5461875: mapnik::cairo_renderer<std::shared_ptr<_cairo>
>::process(mapnik::text_symbolizer const&, mapnik::feature_impl&,
mapnik::proj_transform const&) (process_text_symbolizer.cpp:99)
==15411==    by 0x4F7D15E: apply_const (variant.hpp:317)
==15411==    by 0x4F7D15E:
visit<mapnik::symbolizer_dispatch<mapnik::cairo_renderer<mapnik::cairo_ptr> >,
mapbox::util::variant<mapnik::point_symbolizer, mapnik::line_symbolizer,
mapnik::line_pattern_symbolizer, mapnik::polygon_symbolizer,
mapnik::polygon_pattern_symbolizer, mapnik::raster_symbolizer,
mapnik::shield_symbolizer, mapnik::text_symbolizer,
mapnik::building_symbolizer, mapnik::markers_symbolizer,
mapnik::group_symbolizer, mapnik::debug_symbolizer, mapnik::dot_symbolizer>,
void> (variant.hpp:864)
==15411==    by 0x4F7D15E:
apply_visitor<mapnik::symbolizer_dispatch<mapnik::cairo_renderer<mapnik::cairo_ptr>
>, mapbox::util::variant<mapnik::point_symbolizer, mapnik::line_symbolizer,
mapnik::line_pattern_symbolizer, mapnik::polygon_symbolizer,
mapnik::polygon_pattern_symbolizer, mapnik::raster_symbolizer,
mapnik::shield_symbolizer, mapnik::text_symbolizer,
mapnik::building_symbolizer, mapnik::markers_symbolizer,
mapnik::group_symbolizer, mapnik::debug_symbolizer, mapnik::dot_symbolizer> >
(variant.hpp:42)
==15411==    by 0x4F7D15E:
mapnik::feature_style_processor<mapnik::cairo_renderer<std::shared_ptr<_cairo>
> >::render_style(mapnik::cairo_renderer<std::shared_ptr<_cairo> >&,
mapnik::feature_type_style const*, mapnik::rule_cache const&,
std::shared_ptr<mapnik::Featureset>, mapnik::proj_transform const&)
(feature_style_processor_impl.hpp:621)
==15411==    by 0x4F7B142:
mapnik::feature_style_processor<mapnik::cairo_renderer<std::shared_ptr<_cairo>
> >::render_material(mapnik::layer_rendering_material const&,
mapnik::cairo_renderer<std::shared_ptr<_cairo> >&)
(feature_style_processor_impl.hpp:573)
```


This was working correctly with `1.15.10` and I've bisected the changes and
found that the issue was introduced in `42f07ef90 Always save the origin face
index`. Reverting that commit on top of the current master/HEAD solves the
issue.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cairographics.org/archives/cairo-bugs/attachments/20180326/87ce9a03/attachment.html>


More information about the cairo-bugs mailing list