LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: [lvs-users] Dead servers not being removed from pool, ldirectord

To: "'LinuxVirtualServer.org users mailing list.'" <lvs-users@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: [lvs-users] Dead servers not being removed from pool, ldirectord
From: "Michael S. Moody" <michael@xxxxxx>
Date: Wed, 28 May 2008 07:27:53 -0600
This happened again today, dead servers were not being removed. I had to
stop heartbeat, and allow the resources to transfer to the second load
balancer. Something is seriously wrong, but I don't know what it is. It
doesn't seem to happen on the second load balancer.

Also, one ftp service vip always goes to the fallback on the primary lvs,
but works correctly on the secondary (I hope this makes sense, it's early)

Is there possibly a bug in the ftp monitoring of ldirectord?

Michael

-----Original Message-----
From: Michael S. Moody [mailto:michael@xxxxxx] 
Sent: Thursday, May 22, 2008 7:45 PM
To: lvs-users@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [lvs-users] Dead servers not being removed from pool,
ldirectord

Here's the output of strace against the pid for about 30 seconds:

 

lvs1 fd # strace -p 10363

Process 10363 attached - interrupt to quit

restart_syscall(<... resuming interrupted call ...>) = 0

close(3)                                = 0

open("/tmp/PerlIO_rsrzrG", O_RDWR|O_CREAT|O_EXCL, 0600) = 3

ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fffd25ea620) = -1 ENOTTY
(Inappropriate ioctl for device)

lseek(3, 0, SEEK_CUR)                   = 0

unlink("/tmp/PerlIO_rsrzrG")            = 0

fstat(3, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0

fcntl(3, F_SETFD, FD_CLOEXEC)           = 0

open("/etc/protocols", O_RDONLY)        = 22

fcntl(22, F_GETFD)                      = 0

fcntl(22, F_SETFD, FD_CLOEXEC)          = 0

fstat(22, {st_mode=S_IFREG|0644, st_size=5681, ...}) = 0

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2b31db397000

read(22, "# /etc/protocols\n#\n# Internet (I"..., 4096) = 4096

close(22)                               = 0

munmap(0x2b31db397000, 4096)            = 0

open("/etc/protocols", O_RDONLY)        = 22

fcntl(22, F_GETFD)                      = 0

fcntl(22, F_SETFD, FD_CLOEXEC)          = 0

fstat(22, {st_mode=S_IFREG|0644, st_size=5681, ...}) = 0

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2b31db397000

read(22, "# /etc/protocols\n#\n# Internet (I"..., 4096) = 4096

close(22)                               = 0

munmap(0x2b31db397000, 4096)            = 0

socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 22

ioctl(22, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fffd25ea8c0) = -1 EINVAL
(Invalid argument)

lseek(22, 0, SEEK_CUR)                  = -1 ESPIPE (Illegal seek)

ioctl(22, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fffd25ea8c0) = -1 EINVAL
(Invalid argument)

lseek(22, 0, SEEK_CUR)                  = -1 ESPIPE (Illegal seek)

fcntl(22, F_SETFD, FD_CLOEXEC)          = 0

fcntl(22, F_GETFL)                      = 0x2 (flags O_RDWR)

fcntl(22, F_SETFL, O_RDWR|O_NONBLOCK)   = 0

connect(22, {sa_family=AF_INET, sin_port=htons(21),
sin_addr=inet_addr("192.168.1.195")}, 16) = -1 EINPROGRESS (Operation now in
progress)

select(24, NULL, [22], NULL, {0, 0})    = 1 (out [22], left {0, 0})

connect(22, {sa_family=AF_INET, sin_port=htons(21),
sin_addr=inet_addr("192.168.1.195")}, 16) = 0

fcntl(22, F_GETFL)                      = 0x802 (flags O_RDWR|O_NONBLOCK)

fcntl(22, F_SETFL, O_RDWR)              = 0

select(24, [22], NULL, NULL, {0, 0})    = 0 (Timeout)

close(22)                               = 0

stat("/etc/ha.d/ldirectord.cf", {st_mode=S_IFREG|0644, st_size=8715, ...}) =
0

rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0

rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0

rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0

nanosleep({3, 0}, {3, 0})               = 0

close(3)                                = 0

open("/tmp/PerlIO_9tbzOK", O_RDWR|O_CREAT|O_EXCL, 0600) = 3

ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fffd25ea620) = -1 ENOTTY
(Inappropriate ioctl for device)

lseek(3, 0, SEEK_CUR)                   = 0

unlink("/tmp/PerlIO_9tbzOK")            = 0

fstat(3, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0

fcntl(3, F_SETFD, FD_CLOEXEC)           = 0

open("/etc/protocols", O_RDONLY)        = 22

fcntl(22, F_GETFD)                      = 0

fcntl(22, F_SETFD, FD_CLOEXEC)          = 0

fstat(22, {st_mode=S_IFREG|0644, st_size=5681, ...}) = 0

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2b31db397000

read(22, "# /etc/protocols\n#\n# Internet (I"..., 4096) = 4096

close(22)                               = 0

munmap(0x2b31db397000, 4096)            = 0

open("/etc/protocols", O_RDONLY)        = 22

fcntl(22, F_GETFD)                      = 0

fcntl(22, F_SETFD, FD_CLOEXEC)          = 0

fstat(22, {st_mode=S_IFREG|0644, st_size=5681, ...}) = 0

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2b31db397000

read(22, "# /etc/protocols\n#\n# Internet (I"..., 4096) = 4096

close(22)                               = 0

munmap(0x2b31db397000, 4096)            = 0

socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 22

ioctl(22, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fffd25ea8c0) = -1 EINVAL
(Invalid argument)

lseek(22, 0, SEEK_CUR)                  = -1 ESPIPE (Illegal seek)

ioctl(22, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fffd25ea8c0) = -1 EINVAL
(Invalid argument)

lseek(22, 0, SEEK_CUR)                  = -1 ESPIPE (Illegal seek)

fcntl(22, F_SETFD, FD_CLOEXEC)          = 0

fcntl(22, F_GETFL)                      = 0x2 (flags O_RDWR)

fcntl(22, F_SETFL, O_RDWR|O_NONBLOCK)   = 0

connect(22, {sa_family=AF_INET, sin_port=htons(21),
sin_addr=inet_addr("192.168.1.195")}, 16) = -1 EINPROGRESS (Operation now in
progress)

select(24, NULL, [22], NULL, {0, 0})    = 0 (Timeout)

fcntl(22, F_GETFL)                      = 0x802 (flags O_RDWR|O_NONBLOCK)

fcntl(22, F_SETFL, O_RDWR)              = 0

close(22)                               = 0

stat("/etc/ha.d/ldirectord.cf", {st_mode=S_IFREG|0644, st_size=8715, ...}) =
0

rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0

rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0

rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0

nanosleep({3, 0}, {3, 0})               = 0

close(3)                                = 0

open("/tmp/PerlIO_IWMV4Y", O_RDWR|O_CREAT|O_EXCL, 0600) = 3

ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fffd25ea620) = -1 ENOTTY
(Inappropriate ioctl for device)

lseek(3, 0, SEEK_CUR)                   = 0

unlink("/tmp/PerlIO_IWMV4Y")            = 0

fstat(3, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0

fcntl(3, F_SETFD, FD_CLOEXEC)           = 0

open("/etc/protocols", O_RDONLY)        = 22

fcntl(22, F_GETFD)                      = 0

fcntl(22, F_SETFD, FD_CLOEXEC)          = 0

fstat(22, {st_mode=S_IFREG|0644, st_size=5681, ...}) = 0

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2b31db397000

read(22, "# /etc/protocols\n#\n# Internet (I"..., 4096) = 4096

close(22)                               = 0

munmap(0x2b31db397000, 4096)            = 0

open("/etc/protocols", O_RDONLY)        = 22

fcntl(22, F_GETFD)                      = 0

fcntl(22, F_SETFD, FD_CLOEXEC)          = 0

fstat(22, {st_mode=S_IFREG|0644, st_size=5681, ...}) = 0

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2b31db397000

read(22, "# /etc/protocols\n#\n# Internet (I"..., 4096) = 4096

close(22)                               = 0

munmap(0x2b31db397000, 4096)            = 0

socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 22

ioctl(22, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fffd25ea8c0) = -1 EINVAL
(Invalid argument)

lseek(22, 0, SEEK_CUR)                  = -1 ESPIPE (Illegal seek)

ioctl(22, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fffd25ea8c0) = -1 EINVAL
(Invalid argument)

lseek(22, 0, SEEK_CUR)                  = -1 ESPIPE (Illegal seek)

fcntl(22, F_SETFD, FD_CLOEXEC)          = 0

fcntl(22, F_GETFL)                      = 0x2 (flags O_RDWR)

fcntl(22, F_SETFL, O_RDWR|O_NONBLOCK)   = 0

connect(22, {sa_family=AF_INET, sin_port=htons(21),
sin_addr=inet_addr("192.168.1.195")}, 16) = -1 EINPROGRESS (Operation now in
progress)

select(24, NULL, [22], NULL, {0, 0})    = 1 (out [22], left {0, 0})

connect(22, {sa_family=AF_INET, sin_port=htons(21),
sin_addr=inet_addr("192.168.1.195")}, 16) = 0

fcntl(22, F_GETFL)                      = 0x802 (flags O_RDWR|O_NONBLOCK)

fcntl(22, F_SETFL, O_RDWR)              = 0

select(24, [22], NULL, NULL, {0, 0})    = 0 (Timeout)

close(22)                               = 0

stat("/etc/ha.d/ldirectord.cf", {st_mode=S_IFREG|0644, st_size=8715, ...}) =
0

rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0

rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0

rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0

nanosleep({3, 0}, {3, 0})               = 0

close(3)                                = 0

open("/tmp/PerlIO_ZQKIen", O_RDWR|O_CREAT|O_EXCL, 0600) = 3

ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fffd25ea620) = -1 ENOTTY
(Inappropriate ioctl for device)

lseek(3, 0, SEEK_CUR)                   = 0

unlink("/tmp/PerlIO_ZQKIen")            = 0

fstat(3, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0

fcntl(3, F_SETFD, FD_CLOEXEC)           = 0

open("/etc/protocols", O_RDONLY)        = 22

fcntl(22, F_GETFD)                      = 0

fcntl(22, F_SETFD, FD_CLOEXEC)          = 0

fstat(22, {st_mode=S_IFREG|0644, st_size=5681, ...}) = 0

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2b31db397000

read(22, "# /etc/protocols\n#\n# Internet (I"..., 4096) = 4096

close(22)                               = 0

munmap(0x2b31db397000, 4096)            = 0

open("/etc/protocols", O_RDONLY)        = 22

fcntl(22, F_GETFD)                      = 0

fcntl(22, F_SETFD, FD_CLOEXEC)          = 0

fstat(22, {st_mode=S_IFREG|0644, st_size=5681, ...}) = 0

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2b31db397000

read(22, "# /etc/protocols\n#\n# Internet (I"..., 4096) = 4096

close(22)                               = 0

munmap(0x2b31db397000, 4096)            = 0

socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 22

ioctl(22, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fffd25ea8c0) = -1 EINVAL
(Invalid argument)

lseek(22, 0, SEEK_CUR)                  = -1 ESPIPE (Illegal seek)

ioctl(22, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fffd25ea8c0) = -1 EINVAL
(Invalid argument)

lseek(22, 0, SEEK_CUR)                  = -1 ESPIPE (Illegal seek)

fcntl(22, F_SETFD, FD_CLOEXEC)          = 0

fcntl(22, F_GETFL)                      = 0x2 (flags O_RDWR)

fcntl(22, F_SETFL, O_RDWR|O_NONBLOCK)   = 0

connect(22, {sa_family=AF_INET, sin_port=htons(21),
sin_addr=inet_addr("192.168.1.195")}, 16) = -1 EINPROGRESS (Operation now in
progress)

select(24, NULL, [22], NULL, {0, 0})    = 1 (out [22], left {0, 0})

connect(22, {sa_family=AF_INET, sin_port=htons(21),
sin_addr=inet_addr("192.168.1.195")}, 16) = 0

fcntl(22, F_GETFL)                      = 0x802 (flags O_RDWR|O_NONBLOCK)

fcntl(22, F_SETFL, O_RDWR)              = 0

select(24, [22], NULL, NULL, {0, 0})    = 0 (Timeout)

close(22)                               = 0

stat("/etc/ha.d/ldirectord.cf", {st_mode=S_IFREG|0644, st_size=8715, ...}) =
0

rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0

rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0

rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0

nanosleep({3, 0}, {3, 0})               = 0

close(3)                                = 0

open("/tmp/PerlIO_FsEWhV", O_RDWR|O_CREAT|O_EXCL, 0600) = 3

ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fffd25ea620) = -1 ENOTTY
(Inappropriate ioctl for device)

lseek(3, 0, SEEK_CUR)                   = 0

unlink("/tmp/PerlIO_FsEWhV")            = 0

fstat(3, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0

fcntl(3, F_SETFD, FD_CLOEXEC)           = 0

open("/etc/protocols", O_RDONLY)        = 22

fcntl(22, F_GETFD)                      = 0

fcntl(22, F_SETFD, FD_CLOEXEC)          = 0

fstat(22, {st_mode=S_IFREG|0644, st_size=5681, ...}) = 0

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2b31db397000

read(22, "# /etc/protocols\n#\n# Internet (I"..., 4096) = 4096

close(22)                               = 0

munmap(0x2b31db397000, 4096)            = 0

open("/etc/protocols", O_RDONLY)        = 22

fcntl(22, F_GETFD)                      = 0

fcntl(22, F_SETFD, FD_CLOEXEC)          = 0

fstat(22, {st_mode=S_IFREG|0644, st_size=5681, ...}) = 0

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2b31db397000

read(22, "# /etc/protocols\n#\n# Internet (I"..., 4096) = 4096

close(22)                               = 0

munmap(0x2b31db397000, 4096)            = 0

socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 22

ioctl(22, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fffd25ea8c0) = -1 EINVAL
(Invalid argument)

lseek(22, 0, SEEK_CUR)                  = -1 ESPIPE (Illegal seek)

ioctl(22, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fffd25ea8c0) = -1 EINVAL
(Invalid argument)

lseek(22, 0, SEEK_CUR)                  = -1 ESPIPE (Illegal seek)

fcntl(22, F_SETFD, FD_CLOEXEC)          = 0

fcntl(22, F_GETFL)                      = 0x2 (flags O_RDWR)

fcntl(22, F_SETFL, O_RDWR|O_NONBLOCK)   = 0

connect(22, {sa_family=AF_INET, sin_port=htons(21),
sin_addr=inet_addr("192.168.1.195")}, 16) = -1 EINPROGRESS (Operation now in
progress)

select(24, NULL, [22], NULL, {0, 0})    = 1 (out [22], left {0, 0})

connect(22, {sa_family=AF_INET, sin_port=htons(21),
sin_addr=inet_addr("192.168.1.195")}, 16) = 0

fcntl(22, F_GETFL)                      = 0x802 (flags O_RDWR|O_NONBLOCK)

fcntl(22, F_SETFL, O_RDWR)              = 0

select(24, [22], NULL, NULL, {0, 0})    = 0 (Timeout)

close(22)                               = 0

stat("/etc/ha.d/ldirectord.cf", {st_mode=S_IFREG|0644, st_size=8715, ...}) =
0

rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0

rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0

rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0

nanosleep({3, 0}, ^C <unfinished ...>

Process 10363 detached





<Prev in Thread] Current Thread [Next in Thread>