[cairo-bugs] [Bug 23067] New: using clear drawing operator crashes printing

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Wed Aug 5 00:52:34 PDT 2009


http://bugs.freedesktop.org/show_bug.cgi?id=23067

           Summary: using clear drawing operator crashes printing
           Product: cairo
           Version: 1.8.6
          Platform: x86-64 (AMD64)
        OS/Version: Linux (All)
            Status: NEW
          Severity: normal
          Priority: medium
         Component: image backend
        AssignedTo: cworth at cworth.org
        ReportedBy: thepurlieu at gmail.com
         QAContact: cairo-bugs at cairographics.org


I'm a developer for gerbv, which uses cairo for rendering/printing/etc.  A bug
was posted recently in which gerbv crased during printing.  The output is:

gerbv: /build/buildd/cairo-1.8.6/src/cairo-surface.c:817:
_cairo_surface_set_device_scale: Assertion `status == CAIRO_STATUS_SUCCESS'
failed.

The relevent stack trace is:

#0  0x00007f973da36fb5 in raise () from /lib/libc.so.6
#1  0x00007f973da38bc3 in abort () from /lib/libc.so.6
#2  0x00007f973da2ff09 in __assert_fail () from /lib/libc.so.6
#3  0x00007f973dda55a5 in ?? () from /usr/lib/libcairo.so.2
#4  0x00007f973dd95713 in ?? () from /usr/lib/libcairo.so.2
#5  0x00007f973dd95a2a in ?? () from /usr/lib/libcairo.so.2
#6  0x00007f973dd95b3d in ?? () from /usr/lib/libcairo.so.2
#7  0x00007f973dda3bda in cairo_surface_show_page () from
/usr/lib/libcairo.so.2
#8  0x00007f973dd8ccb0 in ?? () from /usr/lib/libcairo.so.2
#9  0x00007f973dd87249 in cairo_show_page () from /usr/lib/libcairo.so.2
#10 0x00007f97401a3e2d in gtk_print_operation_draw_page_finish () from
/usr/lib/libgtk-x11-2.0.so.0
#11 0x00007f97401a44a9 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#12 0x00007f973fdb704b in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#13 0x00007f973e03320a in g_main_context_dispatch () from
/usr/lib/libglib-2.0.so.0
#14 0x00007f973e0368e0 in ?? () from /usr/lib/libglib-2.0.so.0
#15 0x00007f973e036dad in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#16 0x00007f97401a43d5 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#17 0x00007f97401a4fab in gtk_print_operation_run () from
/usr/lib/libgtk-x11-2.0.so.0
#18 0x000000000041e4e0 in callbacks_print_activate (menuitem=<value optimized
out>, 
    user_data=<value optimized out>) at callbacks.c:504

I traced the problem back to the portion of the file in which we call:

cairo_set_operator (CAIRO_OPERATOR_CLEAR);

to render a portion of the file, effectively clearing a portion of the rendered
context. The on-screen rendering works completely fine with this command,
however when we render the file to a cairo_t and then pass it to the gtk_print
API, it crashes every time.  Has this crash ever been seen before?

Cheers,
Julian


--- Comment #1 from Chris Wilson <chris at chris-wilson.co.uk>  2009-08-05 00:52:20 PST ---
I don't recognise this, and to hit any assertion inside Cairo means something
strange and completely unexpected has happened.

I didn't reproduce this printing one of examples packaged with gerbv -- but
that could just be user error.

What would be great would be to confirm this bug with HEAD and then to grab a
cairo-trace of the application hitting the bug. But, to be honest, I have a
strong suspicion that I may have fixed this by reworking the clipping since
1.8.


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the cairo-bugs mailing list