problem in samba 3.6 async event code.

Herb Lewis hlewis at panasas.com
Thu Aug 11 17:45:25 MDT 2011


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
   winbindd ACKS
   winbindd finishes processing and tries to send reply but
   because there are bytes on the socked the check below is triggered
     if (state->err_on_readability) {
             /* Readable and the caller wants an error on read. */
             tevent_req_error(req, EPIPE);
             return;
      }
   and the write is never sent and winbind_client_response_written
   returns error 32 (EPIPE);

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



More information about the samba-technical mailing list