[Debian-ha-maintainers] Bug#594958: ldirectord real gate request config doesn't work due to buggy regex

Edward Z. Yang ezyang at MIT.EDU
Tue Aug 31 04:31:46 UTC 2010


Package: ldirectord
Version: 1:1.0.3-3~bpo50+1
Severity: important
Tags: patch


Our LVS setup uses ldirectord's real configuration option to check
if servers were alive.

    real=18.181.0.53 gate "heartbeat/services", "1"

Upon upgrading to the latest version of ldirectord on lenny-backports,
we noticed that this code was not working (and we correspondingly did
not have a primary).

Debugging the ldirectord process revealed that it was improperly
making an HTTP request with an invalid host field of 'http'.  Checking
the source code, we found the following bug in the regex for check_http:

--- /usr/sbin/ldirectord.orig   2010-08-31 00:13:52.000000000 -0400
+++ /usr/sbin/ldirectord        2010-08-31 00:14:25.000000000 -0400
@ -2703,7 +2703,7 @
        my ($v, $r) = @_;

        $$r{url} =~ /(http|https):\/\/([^:\/]+)(:([^\/]+))?(\/.*)/;
-       my $host = $1;
+       my $host = $2;
        #my $port = $3;
        my $uri = $4;
        my $virtualhost = (defined $$v{virtualhost} ? $$v{virtualhost} : $host);

-- System Information:
Debian Release: lenny/lenny-backports
Architecture: i386 (i686)





More information about the Debian-ha-maintainers mailing list