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


Reply via email to