HTTP_GET healthcheck with multiple URLs

"Ryan O'Hara" <[email protected]>
Newsgroups gmane.linux.keepalived.devel
Message-ID <[email protected]>
I've been experimenting with the HTTP_GET healthcheck and I noticed
some unexpected behavior with mutliple URLs.

The documentation clearly states that HTTP_GET healthchecks can have
mutliple URLs. Does this mean that each time the healtcheck runs
*both* URLs will be checked and the status and/or MD5 digest will be
verified? That is not what I'm seeing. It appears that only the first
URL is checked. Consider the following:

    real_server 192.168.122.105 80 {
        weight 1
	HTTP_GET {
            url {
                path /foo.html
                status_code 200
            }
            url {
                path /bar.html
                status_code 200
            }
            connect_port 80
            connect_timeout 3
        }
    }

Only "foo.html" is checked. I have run keepalived with --dump-conf and
the parser is definitely finding both URLs.

It gets even more interesting. When both URLs are normal, the
healthcheck only gets "foo.html". If I make "foo.html" unavailable
such that the GET returns something other that status 200, the real
server is considered failed:

    HTTP status code error to [192.168.122.105]:80 url(/foo.html), status_code [404].
    Removing service [192.168.122.105]:80 from VS [192.168.122.201]:80

When I make "foo.html" available again, I see that the healthcheck
gets both URLs before adding the service back to the VS.

    HTTP status code success to [192.168.122.105]:80 url(1).
    HTTP status code success to [192.168.122.105]:80 url(2).
    Remote Web server [192.168.122.105]:80 succeed on service.
    Adding service [192.168.122.105]:80 to VS [192.168.122.201]:80

Seems like I found a bug. Thoughts?

Ryan

------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.