Hi Krzysztof,

On Tue, Sep 08, 2009 at 11:52:35PM +0200, Krzysztof Piotr Oledzki wrote:
> >From c0fafebc289c0f4a02eb10c3134e5752d4a37f97 Mon Sep 17 00:00:00 2001
> From: Krzysztof Piotr Oledzki <[email protected]>
> Date: Tue, 8 Sep 2009 23:40:30 +0200
> Subject: [MEDIUM] Collect & show information about last health check, v2

OK it's a lot better now. I'm still observing something strange. If
the check is pure TCP (no "option *chk" set), the test appears as
always in progress (with the "*") and the last check may either appear
as "INI" or "L4CON". I see "INI" when I send it to a web server, and
"L4CON" if I send it to this loop : "while sleep 1;do nc -lp80;done".
In fact, it even seems like the state changes from INI only if the
server is started after haproxy.

I suppose there is something such as data being needed to mark the
test as complete, but that does not appear clear to me. As you can
see below, the connect still happens :

epoll_wait(3, {}, 7, 581)               = 0
gettimeofday({1252865407, 589160}, NULL) = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 7
fcntl64(7, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
setsockopt(7, SOL_TCP, TCP_NODELAY, [1], 4) = 0
connect(7, {sa_family=AF_INET, sin_port=htons(80), 
sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in 
progress)
connect(7, {sa_family=AF_INET, sin_port=htons(80), 
sin_addr=inet_addr("127.0.0.1")}, 16) = 0
epoll_wait(3, {}, 8, 0)                 = 0
gettimeofday({1252865407, 590139}, NULL) = 0
close(7)                                = 0
epoll_wait(3, {}, 7, 1000)              = 0

If you don't have time to debug this, please tell me, so that I
try to find out what's happening (I'm short in time too in fact).

Otherwise it looks OK to me, and I'm willing to merge it early so
that if we get suggestions of improvements we can merge them ASAP.

Best regards,
Willy


Reply via email to