On Mon, May 25, 2009 at 02:04:07PM +0530, Sanjeev Kumar wrote: > My application on real-server(on port 9123) is responding to http health as > follows: > > http health chk Cmd >> HEAD /check.txt HTTP/1.0 > server health chk resp> HTTP/1.0 200 OK > > On the debian-linux on which HAproxy is running, I can see tcp-connection & > cmd-resp exch using Wireshark analyzer. HAproxy sends few healthchk and > then RST the socket. > But HAproxy doesn't accept the health chk resp, indicating server Down.
you cannot see a valid response with wireshark with the conf below as it is wrong on the IP address and HTTP version. > This time, I ran the HAproxy under strace . > > I see the connect to remote socket is Ok. > But send returns EAGAIN and the recv also return EAGAIN(resource > temporaility unavailable). that's normal, send() is waiting for the connection to complete establishment before sending data, and recv() waits for data to be available. There's no problem here, it's the normal way of doing asynchronous data transfers. Waiting a bit more, you should see send() called again and succeed, with recv() being called immediately after to process received data. I suspect that in your case it is possible that you did this with the wrong config and that the connection goes nowhere, and never establishes, reason why send() never sends the request. Regards, Willy

