[PATCH] weston: Don't ask for EGL depth buffer if not needed

Bill Spitzak spitzak at gmail.com
Thu Mar 22 13:01:53 PDT 2012


Kristian Hoegsberg wrote:

> It's not getting ignored, it's on my list.  I read the thread and
> obviously there's a serious bug in connection.c that you and others
> are hitting (and I think I've seen it myself).  This just can't be the
> right fix.  If you're just typing into the terminal, there's no way
> the protocol buffer would fill up before we send it so you're not
> hitting this case.  Also, we don't flush the data without also sending
> the fds, so you won't get into a case where there are fds left but no
> data in the buffer.  And if that happened, the fix isn't to send an
> empty data buffer with the fds, as that doesn't work, there always has
> to be a regular data payload (as I'm writing this, I can't actually
> find a man page that states this...).
> 
> Anyway, I'll take a look and see if I can reproduce it.  If you can
> post a full backtrace and maybe try to valgrind it, that would be
> helpful.
> 
> thanks,
> Kristian

Thanks it is good to know. I did suspect that such an obvious bug would 
not be in there and you have reason to believe this function should 
never be called when the data buffer is empty and want to find out what 
is really wrong.

The terminal does not crash, instead the compositor gets a protocol 
error and then it kills the client.

This patch does fix it and I see no sign of a message getting lost or a 
extra one being created, when I put debug statements in both client and 
compositor.

I did get a stack dump from the point where this if statement is taken, 
but I don't have it now. I will reproduce it tonight and send it. It was 
inside the attach() call in wayland_client.c however.


More information about the wayland-devel mailing list