[Xcb] socket handoff problems

Clemens Eisserer linuxhippy at gmail.com
Wed Feb 11 08:30:39 PST 2009


Hi again,

Sorry to bother you again with this neverending problem :-/

I played a bit arround with the testcase attached, and found a really
strange thing.
It seems the hang only occurs if I write more than 769 commands a' 36
bytes, between xcb grabs the socket.

With 769 commands (27684 bytes) between the "native"
XRenderFillRectangle  everything works fine and I never got a hang,
however if I write 770 requests (27720 bytes) between giving away the
socket again I get hangs quite frequently.
It seems it does not matter wether I writev 770 times a single
request, or I send 770 requests with a single writev, as long as the
socket is owned without interuption.

Any idea to what this could be related?
I had a look at the code, but I didn't find a place where it would
make a difference.

It seems when the hang occurs, xcb is waiting for the xserver to
reply, so maybe something with transporting the data went wrong?

Thanks, Clemens

2009/1/28 Barton C Massey <bart at cs.pdx.edu>:
> In message <194f62550901271412n6f4f9da9l69bc42e590a1ea4 at mail.gmail.com> you wrote:
>> > You definitely do, which is what return_socket() is supposed
>> > to do.  Just an fflush should be sufficient, I think.
>> As far as I have seen I don't have direct access to the underlaying socket.
>
> I think you can get at it somehow.
>
>> > You
>> > may need to return the last sequence number sent from
>> > return_socket() somehow; I'm still trying to figure that
>> > out.
>> What I do for now is I simply pass the number of written requests at return.
>
> That should work.
>
>> However I am not sure for both :-/
>
> Me neither.
>
>> > I need to do some other stuff and then bring my sources up
>> > to date.  I'll try to figure it all out in the next couple
>> > of days.
>> Thanks a lot for offering your help :)
>> I hope it don't take (away) too much time.
>
> Obviously, haven't really gotten to it yet.  I'll try as
> soon as I can, but I doubt it will be before the weekend.
>
>> By the way, is the socket-handoff code already in a stable version, or
>> will it be in the next stable version (1.2?)?
>>
>> If so, when do you think 1.2 will be released? (just a guess, a year,
>> a half ... I know its done when its done ;) )
>
> It's really up to Jamey and Josh, whose code it is.  I'll
> try to get them together sooner rather than later.  I think
> one more pass and we're good to go.
>
>    Bart
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: handoff-test.c
Type: application/octet-stream
Size: 3652 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/xcb/attachments/20090211/505132e0/attachment.obj 


More information about the Xcb mailing list