Package: keepalived
Version: 1.1.15-1
Severity: normal
If you add an unreachable route to one realserver, the healthchecker doesn't
remove the realserver.
For example,
# ip ro add unreachable 10.1.8.48
# telnet 10.1.8.48 80
Trying 10.1.8.48...
telnet: Unable to connect to remote host: Network is unreachable
But HTTP_GET/SMTP_CHECK/TCP_CHECK isn't aware of the connect problem.
The following codes may be helpful to solve the problem
ipvs1:~# cat a.c
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main (void)
{
int ret, sock, status;
struct sockaddr_in sa = { AF_INET };
socklen_t slen = sizeof (status);
sa.sin_addr.s_addr = inet_addr ("10.1.8.48");
sa.sin_port = htons (80);
sock = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP);
ret = connect (sock, (struct sockaddr *)&sa, sizeof (sa));
printf ("connect return %d\n", ret);
if (ret != 0)
perror ("connect: ");
/*
After calling connect, keepalived use
getsockopt(SO_ERROR)
to get the connection status in function
tcp_socket_state.
But it report no error in this case.
*/
ret = getsockopt (sock, SOL_SOCKET, SO_ERROR, (void *) &status, &slen);
if (ret != 0)
perror ("getsockopt: ");
printf ("status = %d\n", status);
};
ipvs1:~# gcc a.c
ipvs1:~# ./a.out
connect return -1
connect: : Network is unreachable
status = 0
ipvs1:~#
-- System Information:
Debian Release: lenny/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.26-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=zh_CN.UTF-8, LC_CTYPE=zh_CN.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages keepalived depends on:
ii iproute 20080725-2 networking and traffic control too
ii ipvsadm 1:1.24-2 Linux Virtual Server support progr
ii libc6 2.7-15 GNU C Library: Shared libraries
ii libpopt0 1.14-4 lib for parsing cmdline parameters
ii libssl0.9.8 0.9.8g-13 SSL shared libraries
keepalived recommends no packages.
keepalived suggests no packages.
-- no debconf information
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]