<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW - SIGABRT in _cairo_ft_unscaled_font_create_internal"
href="https://bugs.freedesktop.org/show_bug.cgi?id=105746">105746</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>SIGABRT in _cairo_ft_unscaled_font_create_internal
</td>
</tr>
<tr>
<th>Product</th>
<td>cairo
</td>
</tr>
<tr>
<th>Version</th>
<td>unspecified
</td>
</tr>
<tr>
<th>Hardware</th>
<td>x86-64 (AMD64)
</td>
</tr>
<tr>
<th>OS</th>
<td>Linux (All)
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>medium
</td>
</tr>
<tr>
<th>Component</th>
<td>freetype font backend
</td>
</tr>
<tr>
<th>Assignee</th>
<td>david@freetype.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>raul@rmr.ninja
</td>
</tr>
<tr>
<th>QA Contact</th>
<td>cairo-bugs@cairographics.org
</td>
</tr></table>
<p>
<div>
<pre>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>
<span class="quote">>::process(mapnik::text_symbolizer const&, mapnik::feature_impl&,</span >
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>
<span class="quote">>, mapbox::util::variant<mapnik::point_symbolizer, mapnik::line_symbolizer,</span >
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>
<span class="quote">> >::render_style(mapnik::cairo_renderer<std::shared_ptr<_cairo> >&,</span >
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>
<span class="quote">> >::render_material(mapnik::layer_rendering_material const&,</span >
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.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
</ul>
</body>
</html>