Bug 45156

Summary: Crashes in tests on ppc
Product: cairo Reporter: Laurent G <lauranger>
Component: quartz backendAssignee: Vladimir Vukicevic <vladimir>
Status: RESOLVED MOVED QA Contact: cairo-bugs mailing list <cairo-bugs>
Severity: normal    
Priority: medium    
Version: 1.10.3   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Laurent G 2012-01-23 14:09:09 UTC
Hi, I don't how to start and if this is useful at all.
On my ppc G4 gentoo, I have problem with cairo for month now since 1.10.
At the beginning of may 2011, I tried with the git HEAD and it gave me back thunderbird and firefox. But then I had to upgrade for Qt upgrade to 4.8 but this brought crashes.

So, I tried running tests to see what I could find.
They give a lot of crashes, so many that I am not sure this report can be useful as it looks like I have a very cranky system (but KDE-4.6.5 is run quite fine on it). Some are assert failures, some are not.

Launching : make run TOOL=gdb
gives me a crash :
#0  _cairo_polygon_limit (polygon=0xbfffc458, limits=0x0, num_limits=1) at cairo-polygon.c:93
#1  0x0ff0ef50 in _cairo_polygon_init (polygon=<optimized out>, limits=<optimized out>, num_limits=<optimized out>)
    at cairo-polygon.c:137
#2  0x0fefcab8 in _cairo_path_fixed_fill_to_traps (path=0x1015aef4, fill_rule=CAIRO_FILL_RULE_WINDING, 
    tolerance=<optimized out>, traps=0xbfffc858) at cairo-path-fill.c:258
#3  0x0ff8a458 in base_compositor_fill (_compositor=<optimized out>, extents=0xbfffcb28, path=0x1015aef4, 
    fill_rule=CAIRO_FILL_RULE_WINDING, tolerance=<optimized out>, antialias=<optimized out>)
    at test-base-compositor-surface.c:772
#4  0x0fedf96c in _cairo_compositor_fill (compositor=0xffb1c9c, surface=<optimized out>, op=<optimized out>, 
    source=<optimized out>, path=0x1015aef4, fill_rule=CAIRO_FILL_RULE_WINDING, tolerance=0.10000000000000001, 
    antialias=CAIRO_ANTIALIAS_DEFAULT, clip=<optimized out>) at cairo-compositor.c:167
#5  0x0ff282d8 in _cairo_surface_fill (surface=0x1015aae0, op=CAIRO_OPERATOR_OVER, source=0xbfffce58, 
    path=0x1015aef4, fill_rule=CAIRO_FILL_RULE_WINDING, tolerance=0.10000000000000001, 
    antialias=CAIRO_ANTIALIAS_DEFAULT, clip=0x0) at cairo-surface.c:1987
#6  0x0fee9234 in _cairo_gstate_fill (gstate=0x1015ad90, path=0x1015aef4) at cairo-gstate.c:1268
#7  0x0fed8630 in *INT_cairo_fill_preserve (cr=0x1015ac10) at cairo.c:2129
#8  0x1000bc04 in draw (cr=0x1015ac10, width=<optimized out>, height=<optimized out>) at a1-bug.c:47
#9  0x10008984 in cairo_test_for_target (ctx=0xbfffd134, target=0x10150754, dev_offset=<optimized out>, 
    similar=<optimized out>) at cairo-test.c:920
#10 0x100099e4 in _cairo_test_context_run_for_target (ctx=0xbfffd134, target=0x10150754, similar=0, dev_offset=0)
    at cairo-test.c:1523
#11 0x1000b244 in _cairo_test_runner_draw (device_offset=<optimized out>, similar=0, target=<optimized out>, 
    ctx=0xbfffd134, runner=<optimized out>) at cairo-test-runner.c:254

gcc is 4.5.3

By the way, how can I get an unoptimized-out test binary ?

Thanks in advance.
Comment 1 Laurent G 2012-01-28 16:51:38 UTC
After following the execution that ends in the crash, I could not really understand what was going on around line 125 of cairo-polygon.c because the pointer "limits" goes from non zero to zero by passing the VALGRIND things line.
So I checked options passed to configure/make/gcc and tried two things :
* to force no use of -O with the -g -> the crash does not happen
* to disable while -g and -O are in the CFLAGS -> the crash does not happen
Ii may be that it should have been obvious to me from the start that debug+valgrind don'"t mix well with -O optimizations.

Sorry for the noise.
Comment 2 GitLab Migration User 2018-08-25 13:56:08 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/cairo/cairo/issues/275.

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.