[cairo] local PLT check failure for cairo-xcb

Jamey Sharp jamey at minilop.net
Thu Oct 12 17:21:13 PDT 2006

On Thu, Oct 12, 2006 at 01:05:50PM -0700, Carl Worth wrote:
> On Thu, 12 Oct 2006 10:55:36 -0700, Jamey Sharp wrote:
> > I'd like to recommend that Ian have commit access to cairo.
> Agreed. And done.


> > and 'make check' works now, except it caused my X server to segfault in
> > a CompositeTrapezoids call. Guess I'll be filing a bug report about
> > that. :-)
> Oh, my. Mozilla has seen that call crash due to exceeding the number
> of trapezoids sent or something like that:
> 	https://bugzilla.mozilla.org/show_bug.cgi?id=356372
> 	https://bugzilla.mozilla.org/show_bug.cgi?id=307254

Hey, I can reproduce those bugs. How exciting. But they terminate
firefox only, not the whole server; and it's not a crash, just an I/O
error due to the server telling firefox where it can go.

> Which is odd since CompositeTrapezoids is supposed to break things up
> into bite-size batches for the X server.

Note that XCB makes no effort to split up requests for you: if cairo
passes 10 million trapezoids to xcb_render_trapezoids, then XCB is
either going to notice that the resulting request is too big for the
server's request size limit and refuse to send anything, or it's going
to send 10 million trapezoids in one request. On the other hand, the
failing request is embedded in a 440 byte packet, and the Trapezoids
request in there is only 184 bytes.

> Meanwhile, the batching breaks the cairo semantics anyway, (it
> introduces seams), so we've been needing to switch to AddTraps since
> it was first added to Render, (and that will likely get us better
> performance anyway).
> Still, I certainly haven't seen "make check" crash any of my X
> servers, so it would be good to track down that bug and fix it.

I've filed a bug against the X server about this:

I found that Xvfb from Debian testing (X.org 7.0, xserver 1.0.2) is
enough to reproduce the bug, so I don't have to kill my real X server;
and that the rectangle-rounding-error test is what fails, when run on
the XCB backend.
	make -C test check TESTS=rectangle-rounding-error TARGETS=xcb

Perhaps you could contribute your insight about what that test is doing?

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://lists.freedesktop.org/archives/cairo/attachments/20061012/b5c977ef/attachment.pgp

More information about the cairo mailing list