Hi,
Le Mardi 2 Février 2010 12:38:08, Mark Brooks a écrit :
> Hi all, I have setup a bit of a test see config file i am using version
> HAProxy version 1.4-dev4, released 2009/10/12 <http://haproxy.1wt.eu/> -
> 
> Which checks for the string TinyWeb1-DC-TestA2 in the page, the check
> itself functions perfectly if I remove the line from the page it pulls
> it out of the cluster and if I put it back it appears again.

From your configuration, I guess you're using a modified version of this patch :
http://haproxy.1wt.eu/download/patches/http-ecv-checks.diff

> However on the
>  stats page in the "lastchk" column it says * INI. According to the
> manual I think its constantly Initialising the test
> 
> 36. check_status: status of last health check, one of:
>       UNK     -> unknown
>       INI     -> initializing
> 
> I have played about adjusting the check interval incase it was too
> fast but it appears to make no difference. Have I formed the check
> incorrectly or is INI as to be expected

This part appeared between haproxy-1.4-dev2 and haproxy-1.4-dev3.

To apply this patch on a recent 1.4 version,
1. you'll first have to replace (in src/checks.c)
s->result |= SRV_CHK_RUNNING and  s->result |= SRV_CHK_ERROR
by some set_server_check_status() equivalents.

2. also, be careful with the constants provided by includes/types/proxy.h :
#define PR_O2_EXPECT    0x00000008      /* http-check expect sth */
#define PR_O2_NOEXPECT  0x00000010      /* http-check expect ! sth */
In the 1.4 branch, they'll conflict with some other constants. You'll have to 
change the values.
3. I've quickly tested it on haproxy-1.4-dev4, it segfaulted (so I think you've 
already modified this part).
To not segfault, this part of patch
        if((s->proxy->options2 & PR_O2_EXPECT) || (s->proxy->options2 & 
PR_O2_NOEXPECT)) {
                        httpchk_expect(s);
        }
should be put before the calls to cut_crlf()
or httpchk_expect() can be modified to start just after the status line.
Without that, httpchk_expect() won't find the Content-Length header and will 
use a null pointer.

I hope this will help you.

-- 
Cyril Bonté

Reply via email to