The crash is part of a larger server environment. So I don't have a sample source to reproduce the issue right now. If one is needed I can try to put it together.<div>Thanks</div><div>Joseph<br><br><div class="gmail_quote">

On Fri, Jul 27, 2012 at 10:25 AM, suzuki toshiya <span dir="ltr"><<a href="mailto:mpsuzuki@hiroshima-u.ac.jp" target="_blank">mpsuzuki@hiroshima-u.ac.jp</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Although freetype-2.2.1 sounds too old, I'm interested in the issue.<br>
If you have any sample to reproduce the issue, please make it available.<br>
<br>
Regards,<br>
mpsuzuki<br>
<div class="im"><br>
Joseph Adamski-Smith wrote:<br>
> I have a crash inside freetype and it seems to be related to how cairo uses<br>
> freetype. But I am not very familiar to say for sure.<br>
><br>
> The crash call stack is below<br>
><br>
> current thread: t@121<br>
</div>> =>[1] af_latin_hints_compute_edges(*hints = 0x128623eb0*, dim =<br>
<div class="im">> AF_DIMENSION_HORZ), line 1039 in "aflatin.c"<br>
>   [2] af_latin_hints_detect_features(hints = 0x128623eb0, dim =<br>
> AF_DIMENSION_HORZ), line 1207 in "aflatin.c"<br>
>   [3] af_latin_hints_apply(hints = 0x128623eb0, outline = 0x100cb61b8,<br>
> metrics = 0x125a15f80), line 1951 in "aflatin.c"<br>
>   [4] af_loader_load_g(loader = 0x128623e98, scaler = 0xffffffff27edefb8,<br>
> glyph_index = 23U, load_flags = 2561, depth = 0), line 165 in "afloader.c"<br>
>   [5] af_loader_load_glyph(loader = 0x128623e98, face = 0x1282a00c0, gindex<br>
> = 23U, load_flags = 2561U), line 484 in "afloader.c"<br>
>   [6] af_autofitter_load_glyph(module = 0x128623e70, slot = 0x128086e90,<br>
> size = 0x1002135f0, glyph_index = 23U, load_flags = 512), line 57 in<br>
> "afmodule.c"<br>
</div>>   [7] FT_Load_Glyph(*face = 0x1282a00c0*, glyph_index = 23U, load_flags =<br>
<div class="HOEnZb"><div class="h5">> 512), line 612 in "ftobjs.c"<br>
>   [8] _cairo_ft_scaled_glyph_init(abstract_font = 0x1230a66a0, scaled_glyph<br>
> = 0x1243639c8, info = CAIRO_SCALED_GLYPH_INFO_METRICS), line 2159 in<br>
> "cairo-ft-font.c"<br>
>   [9] _cairo_scaled_glyph_lookup(scaled_font = 0x1230a66a0, index = 23U,<br>
> info = CAIRO_SCALED_GLYPH_INFO_METRICS, scaled_glyph_ret =<br>
> 0xffffffff27edf520), line 2934 in "cairo-scaled-font.c"<br>
>   [10] cairo_scaled_font_text_to_glyphs_internal_uncached(scaled_font =<br>
> 0x1230a66a0, x = 4.0, y = 0.0, utf8 = 0x124365cb0 "$  4,000", glyphs =<br>
> 0x123354400, clusters = (nil), num_chars = 8), line 1755 in<br>
> "cairo-scaled-font.c"<br>
>   [11] cairo_scaled_font_text_to_glyphs(scaled_font = 0x1230a66a0, x = 0.0,<br>
> y = 0.0, utf8 = 0x124365cb0 "$  4,000", utf8_len = 8, glyphs =<br>
> 0xffffffff27edf7c0, num_glyphs = 0xffffffff27edf7bc, clusters = (nil),<br>
> num_clusters = (nil), cluster_flags = (nil)), line 2076 in<br>
> "cairo-scaled-font.c"<br>
>   [12] cairo_text_extents(cr = 0x1243660c0, utf8 = 0x124365cb0 "$  4,000",<br>
> extents = 0xffffffff27edf8c0), line 3094 in "cairo.c"<br>
><br>
> The crash happens on the statement<br>
> found->last->edge_next = seg<br>
> At the time of crash found->last is null.<br>
><br>
> I found another thread executing in the same function<br>
> current thread: t@102<br>
> =>[1] af_latin_hints_compute_edges(hints = 0x128623eb0, dim =<br>
> AF_DIMENSION_HORZ), line 1153 in "aflatin.c"<br>
>   [2] af_latin_hints_detect_features(hints = 0x128623eb0, dim =<br>
> AF_DIMENSION_HORZ), line 1207 in "aflatin.c"<br>
>   [3] af_latin_hints_apply(hints = 0x128623eb0, outline = 0x100cb61b8,<br>
> metrics = 0x1165c2310), line 1951 in "aflatin.c"<br>
>   [4] af_loader_load_g(loader = 0x128623e98, scaler = 0xffffffff2b7d6568,<br>
> glyph_index = 70U, load_flags = 2561, depth = 0), line 165 in "afloader.c"<br>
>   [5] af_loader_load_glyph(loader = 0x128623e98, face = 0x129c98910, gindex<br>
> = 70U, load_flags = 2561U), line 484 in "afloader.c"<br>
>   [6] af_autofitter_load_glyph(module = 0x128623e70, slot = 0x1165c65d0,<br>
> size = 0x103312420, glyph_index = 70U, load_flags = 512), line 57 in<br>
> "afmodule.c"<br>
>   [7] FT_Load_Glyph(face = 0x129c98910, glyph_index = 70U, load_flags =<br>
> 512), line 612 in "ftobjs.c"<br>
>   [8] _cairo_ft_scaled_glyph_init(abstract_font = 0x124367000, scaled_glyph<br>
> = 0x122e96a48, info = CAIRO_SCALED_GLYPH_INFO_METRICS), line 2159 in<br>
> "cairo-ft-font.c"<br>
>   [9] _cairo_scaled_glyph_lookup(scaled_font = 0x124367000, index = 70U,<br>
> info = CAIRO_SCALED_GLYPH_INFO_METRICS, scaled_glyph_ret =<br>
> 0xffffffff2b7d6ad0), line 2934 in "cairo-scaled-font.c"<br>
>   [10] cairo_scaled_font_text_to_glyphs_internal_cached(scaled_font =<br>
> 0x124367000, x = 10.0, y = 0.0, utf8 = 0xffffffff2b7d7d0e "Secondary<br>
> Dataset 1", glyphs = 0x124360ef0, clusters = (nil), num_chars = 19), line<br>
> 1695 in "cairo-scaled-font.c"<br>
>   [11] cairo_scaled_font_text_to_glyphs(scaled_font = 0x124367000, x = 0.0,<br>
> y = 0.0, utf8 = 0xffffffff2b7d7d0e "Secondary Dataset 1", utf8_len = 19,<br>
> glyphs = 0xffffffff2b7d7470, num_glyphs = 0xffffffff2b7d746c, clusters =<br>
> (nil), num_clusters = (nil), cluster_flags = (nil)), line 2069 in<br>
> "cairo-scaled-font.c"<br>
>   [12] cairo_text_extents(cr = 0x1243610c0, utf8 = 0xffffffff2b7d7d0e<br>
> "Secondary Dataset 1", extents = 0xffffffff2b7d7570), line 3094 in "cairo.c"<br>
><br>
> The hints object comes from the freetype library which is initialized once<br>
> in _cairo_ft_unscaled_font_map_create. So all the faces use the same<br>
> freetype library. Wouldn't this lead to race conditions?<br>
><br>
> The cairo version I am using is 1.12.2 and freetype is 2.2.1<br>
><br>
> Thank you<br>
> Joseph<br>
><br>
><br>
<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>Adamski-Smith Multimedia Solutions<br><a href="http://www.adamski-smith.com">www.adamski-smith.com</a><br>
</div>