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.
_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to