On Sun, 13 Sep 2009, Willy Tarreau wrote:
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.
Strange, I must have overlooked something, probably because I don't use
pure tcp mode so my tests were rather limited, even too limited. :(
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
Thank you for the detailed report.
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.
Thanks, I'll take care of the above bug so we will be able to marge it
eventually. ;)
Best regards,
Krzysztof Olędzki