Bug 25395 - intel/UXA [965] X crashes during Wine "make test in user32:win"
Summary: intel/UXA [965] X crashes during Wine "make test in user32:win"
Status: RESOLVED WORKSFORME
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/intel (show other bugs)
Version: 7.4 (2008.09)
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Carl Worth
QA Contact: Xorg Project Team
URL: https://bugzilla.novell.com/show_bug....
Whiteboard:
Keywords: NEEDINFO
Depends on:
Blocks:
 
Reported: 2009-12-02 07:21 UTC by Marcus Meissner
Modified: 2011-10-30 08:57 UTC (History)
5 users (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Marcus Meissner 2009-12-02 07:21:47 UTC
Wines testsuite has tests which resizes and moves windows and that one
causes the X server to abort.

my original report was in:
https://bugzilla.novell.com/show_bug.cgi?id=558441

Program received signal SIGABRT, Aborted.
0x00007efff9d8c4e5 in raise () from /lib64/libc.so.6
(gdb) b
Breakpoint 1 at 0x7efff9d8c4e5
(gdb) bt
#0  0x00007efff9d8c4e5 in raise () from /lib64/libc.so.6
#1  0x00007efff9d8d9b0 in abort () from /lib64/libc.so.6
#2  0x00007efff9d8524a in __assert_fail () from /lib64/libc.so.6
#3  0x00007efffb326044 in pixman_set_extents (region=<value optimized out>) at
pixman-region.c:1093
#4  0x00007efffb3262af in pixman_region_translate (region=0x44e2c90, x=25716,
y=6)
    at pixman-region.c:2287
#5  0x00007efff7d8f89a in uxa_poly_fill_rect (pDrawable=0x4507e60,
pGC=0x407f660, nrect=2, 
    prect=0x450d910) at uxa-accel.c:685
#6  0x00007efff7d8e4c8 in uxa_poly_segment (pDrawable=0x4507e60, pGC=0x6474,
nseg=6, 
    pSeg=<value optimized out>) at uxa-accel.c:658
#7  0x0000000000538d9b in damagePolySegment (pDrawable=0x4507e60,
pGC=0x407f660, nSeg=2, 
    pSeg=0x44e00d4) at damage.c:1191
#8  0x000000000044b744 in ProcPolySegment (client=0x4563040) at dispatch.c:1699
#9  0x000000000044da04 in Dispatch () at dispatch.c:456
#10 0x0000000000433965 in main (argc=<value optimized out>,
argv=0x7fff861ce4c8, 
    envp=<value optimized out>) at main.c:397
(gdb) up
#1  0x00007efff9d8d9b0 in abort () from /lib64/libc.so.6
(gdb) 
#2  0x00007efff9d8524a in __assert_fail () from /lib64/libc.so.6
(gdb) 
#3  0x00007efffb326044 in pixman_set_extents (region=<value optimized out>) at
pixman-region.c:1093
1093        assert (region->extents.x1 < region->extents.x2);
(gdb) print region
$1 = <value optimized out>
(gdb) up
#4  0x00007efffb3262af in pixman_region_translate (region=0x44e2c90, x=25716,
y=6)
    at pixman-region.c:2287
2287                    pixman_set_extents (region);
(gdb) prin region
Ambiguous command "prin region": print, print-object, printf.
(gdb) print region
$2 = (region_type_t *) 0x44e2c90
(gdb) print *region
$3 = {extents = {x1 = 102, y1 = -32648, x2 = 0, y2 = 0}, data = 0x3b22060}
(gdb) (gdb) up
#5  0x00007efff7d8f89a in uxa_poly_fill_rect (pDrawable=0x4507e60,
pGC=0x407f660, nrect=2, 
    prect=0x450d910) at uxa-accel.c:685
685         REGION_TRANSLATE(pScreen, pReg, pDrawable->x, pDrawable->y);
(gdb) print pReg
$4 = <value optimized out>
(gdb) print prect
$5 = (xRectangle *) 0x450d910
(gdb) print prect[0]
$6 = {x = -1, y = 32766, width = 32767, height = 1}
(gdb) print prect[1]
$7 = {x = 32766, y = -1, width = 1, height = 32767}
(gdb) 


so somewhere in between a negative value enters the game, perhaps after
offseting both prects or so.

i can 100% reproduce this, however just with Wine currently.
Comment 1 Marcus Meissner 2009-12-02 07:22:52 UTC
reproduce:

- build wine

cd dlls/user32/tests
make check
Comment 2 Søren Sandmann Pedersen 2009-12-03 03:48:22 UTC
Which version of pixman are you using?
Comment 3 Marcus Meissner 2009-12-03 04:27:47 UTC
pixman 0.16.0
Comment 4 Søren Sandmann Pedersen 2009-12-16 13:40:05 UTC
This assert will likely be gone with pixman 0.16.4, but most likely it reflects a real underlying bug either in the server or in the Intel driver.

See also bug 25270.
Comment 5 Carl Worth 2010-02-17 09:48:19 UTC
(In reply to comment #0)
> Wines testsuite has tests which resizes and moves windows and that one
> causes the X server to abort.
...
> i can 100% reproduce this, however just with Wine currently.

Hi Marcus,

As Søren mentioned, the assert is being (or has been) fixed.

But this would still be an interesting bug to track down. The fact that the
current test case is only with wine makes it somewhat difficult to work with.

Could you capture the execution of the offending test with xtrace?

If you could send the result of that, that should allow us to construct a
minimal test case for this bug.

Thanks,

-Carl


Comment 6 Chris Wilson 2011-10-30 08:57:29 UTC
Works in sna...


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.