[cairo-bugs] [Bug 34810] New: [Bisected] many cairo test regressed

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Sun Feb 27 18:18:44 PST 2011


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

           Summary: [Bisected] many cairo test regressed
           Product: cairo
           Version: 1.10.3
          Platform: x86 (IA32)
        OS/Version: Linux (All)
            Status: NEW
          Severity: major
          Priority: medium
         Component: xlib backend
        AssignedTo: cworth at cworth.org
        ReportedBy: jian.j.zhao at intel.com
         QAContact: cairo-bugs at cairographics.org


System Environment:
--------------------------
Libdrm:        (master)2.4.23-16-ge6018c25ca63fa6066d8fa6e57373030d07b0392
Mesa:        (master)a385ac62070fa68052c77df7be62685bf6a58992
Xserver:        (master)xorg-server-1.10.0
Xf86_video_intel: (master)2.14.0-38-g6b926444c7c66e5d14eb911d9ab3d0e2d512bca4
Cairo:        (master)17169a1e5130b8a287f07eb43d41f0b51307cc57
Kernel:    (drm-intel-next) 710f957846cff998c681f3701f6f90eda896458f


Bug detailed description:
-------------------------
There are many cairo test cases(about 40) regressed on xlib fallback backend
with output: lt-cairo-test-suite: cairo-surface.c:178:
_cairo_surface_set_error: Assertion `status < CAIRO_STATUS_LAST_STATUS\'
failed. clear-source.xlib-fallback.rgb24 [0]: !!!CRASHED!!!
I find it was caused by commit badf32290ff894351e0f6879aafeac6db8e0d846 in
Cairo. And this issue happened on both Pineview and Piketon. 
commit badf32290ff894351e0f6879aafeac6db8e0d846
Author: Benjamin Otte <otte at redhat.com>
Date:   Fri Feb 18 18:23:25 2011 +0100 
    surface: Don't be nice to people setting internal error codes 
    Just DIE DIE DIE in the _cairo_status_set_status() assertion.

Before this commit, its running result: 
[root at x-pk1 test]# CAIRO_TEST_TARGET=xlib ./cairo-test-suite bitmap-font
TESTING cairo-test-suite
Compiled against cairo 1.11.3, running on 1.11.3.
Compiled against pixman 0.21.5, running on 0.21.5.
TESTING bitmap-font
bitmap-font.xlib.argb32 [0]:    PASS
bitmap-font.xlib.rgb24 [0]:     PASS
bitmap-font.xlib-window.rgb24 [0]:      PASS
bitmap-font.xlib-fallback.rgb24 [0]:    PASS
bitmap-font: PASS
1 Passed, 0 Failed [0 crashed, 0 expected], 0 Skipped 

With this commit, its running result: 
[root at x-pk1 test]# CAIRO_TEST_TARGET=xlib ./cairo-test-suite bitmap-font
TESTING cairo-test-suite
Compiled against cairo 1.11.3, running on 1.11.3.
Compiled against pixman 0.21.5, running on 0.21.5.
TESTING bitmap-font
bitmap-font.xlib.argb32 [0]:    PASS
bitmap-font.xlib.rgb24 [0]:     PASS
bitmap-font.xlib-window.rgb24 [0]:      PASS
bitmap-font.xlib-fallback.rgb24 [0]:    lt-cairo-test-suite:
cairo-surface.c:178: _cairo_surface_set_error: Assertion `status <
CAIRO_STATUS_LAST_STATUS' failed.
bitmap-font.xlib-fallback.rgb24 [0]:    !!!CRASHED!!!
bitmap-font: CRASH! (xlib-fallback)
0 Passed, 1 Failed [1 crashed, 0 expected], 0 Skipped
xlib-fallback (rgb24): 1 crashed! - bitmap-font

I tested with the following patch which just partly revert that commit, it
passed again. 

diff --git a/src/cairo-surface.c b/src/cairo-surface.c
index b4c9eb6..74c2461 100644
--- a/src/cairo-surface.c
+++ b/src/cairo-surface.c
@@ -173,6 +173,9 @@ _cairo_surface_set_error (cairo_surface_t *surface,
         status == CAIRO_INT_STATUS_NOTHING_TO_DO)
         return CAIRO_STATUS_SUCCESS;

+    if (status >= CAIRO_INT_STATUS_UNSUPPORTED)
+        return status;
+
     /* Don't overwrite an existing error. This preserves the first
      * error, which is the most significant. */
     _cairo_status_set_error (&surface->status, status);

-- 
Configure bugmail: https://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