problem in samba 3.6 async event code.

Volker Lendecke Volker.Lendecke at SerNet.DE
Mon Aug 22 03:07:08 MDT 2011


On Thu, Aug 11, 2011 at 04:45:25PM -0700, Herb Lewis wrote:
> I've been tracking down a test failure in winbindd with one of
> our tests that use multiple threads sending requests to winbindd.
> Using wireshark and soem extra debug prints I was able to track it
> down to code in lib/async_req/async_sock.c in the function
> writev_handler.
> 
> The sequence goes like this.
> Client sends a packet with 1 request
>   winbindd ACKS and starts processing
> client sends a packet with 4 requests

Unfortunately this is an invalid use of the winbind pipe
protocol. That protocol is not really made for multiplexing
more than one request at a time, we don't have a mid field
like the SMB protocol does. Please open multiple sockets so
that the winbind pipe protocol is used in a simple
request/response manner. In the future, I would like to hide
everything behind libwbclient, also the NSS libraries. That
needs to be done in a thread-safe way. We can then decide
whether multiple threads are handled with multiple sockets
of if we add a mid-like field to the winbind protocol.

> What is the purpose of this state->err_on_readability code?

It is used to detect a client that just exited.

Volker

-- 
SerNet GmbH, Bahnhofsallee 1b, 37081 Göttingen
phone: +49-551-370000-0, fax: +49-551-370000-9
AG Göttingen, HRB 2816, GF: Dr. Johannes Loxen


More information about the samba-technical mailing list