Bug 14895 - Ipvsadm handling on non standard tcp/udp ports
Ipvsadm handling on non standard tcp/udp ports
Status: CLOSED NOTABUG
Product: Red Hat High Availability Server
Classification: Retired
Component: piranha (Show other bugs)
1.0
i386 Linux
low Severity medium
: ---
: ---
Assigned To: Phil Copeland
Wil Harris
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2000-07-31 13:19 EDT by Pietro Ravasio
Modified: 2007-03-26 23:33 EDT (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2000-08-02 04:26:49 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Red Hat Bugzilla 2000-07-31 13:19:09 EDT
As I was writing on lvs-users mailing list, I've had some problem with 
nanny: it doesn't seem to handle ipvsadm calls on tcp and udp connections 
running "non standard" services (I've never had problems redirecting and 
load balancing http, ftp and so on connections...).

I've written an application gatway listining tcp connections on 5555 port 
and an UDP servr listening on 10000 port. 

Using piranha-0.4.16-2:

Having added correct entries in /etc/lvs.cf and having restarted pulse, 
nanny doesn't seem to correctly handle ipvsadm calls. Infact ipvsadm -L 
repots:
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port          Forward Weight ActiveConn InActConn
TCP  virtual.mediola.com:5555 rr
TCP  virtual.mediola.com:www wlc
  -> client2.rabitec.com:www     Masq    2000   0          0         
  -> client3.rabitec.com:www     Masq    2000   0          0         
UDP  virtual.mediola.com:10000 rr

This is very strange since reading /var/log/messages I can clearly see 
nanny calling ipvsadm to add redirection on port 5555 and 10000. At this 
moment the only way to redirect traffic was to manually call:
ipvsadm -a -t virtual_server_IP -r real_server_ip m
But this doesn't allow service failovers management, since nanny doesn't 
monitor each service's health. (EVEN IF my tcp client listening on 5555 
port did report continuos (one every 10 secs.) connection from my LVS 
server.

Using piranha-0.4.16-2:

TCP now works correctly, and as soon as I stop one of my TCP server nanny 
calls ipvsadm and removes real server entry from the redirection table.

UDP still doesn't seem to work.
Comment 1 Red Hat Bugzilla 2000-07-31 13:29:03 EDT
I believe the user means version 16-3 in the second half of the posting.

OK, you say that tcp now works, so let's focus on udp.

Since UDP is connectionless, nanny cannot connect to a udp server to test it. It
must perform some sort of send/receive I/O and determine the status from the
result. This means that you must have some sort of send string defined in order
to test a UDP server, even if that string is just "\n". Since the current
version of nanny can only talk in printable text rather than binary data, you
are limited to services that do not require a binary message.

Once the message is sent, nanny waits for a udp response. If the receive does
not timeout, and the response back is not an error (like refused), the service
is considered good. If you specified an expect string, the respnse is also
tested against that.

The easiest way to test UDP is against the echo server. When enabled in
inetd.conf, anything sent to it will return the same string.

Instead of starting pulse via the script, typing "pulse -n -v" as root will
start it with full debugging. The the screen and/or log file should have the
details about the udp I/O attempts.

Does this help? Do you still have a problem, and if so, what kind?
Include an extract of the nanny I/O debug output.

Comment 2 Red Hat Bugzilla 2000-07-31 13:58:21 EDT
Hi Keith,

Sorry, I was meaning 0.4.16-3, I did a cut'n paste and forgot to modify the 
text... SORRY! ;)

Tomorrow I'll try sending text data to my UDP server with nanny, I've got to 
slighly modify it before trying!
Comment 3 Red Hat Bugzilla 2000-08-01 05:29:50 EDT
I've slightly modified my udp server to make it possible to receive text data 
and to reply to it; this is the code:

....
nbytes=recvfrom(serv,message,512,0,(struct sockaddr *)&client,&leng);
printf("UDP inviato a %s\n",inet_ntoa(client.sin_addr));
printf("Ricevuto: %s\n",message);
strcat(message," server");
nbytes=sendto(serv,message,strlen(message)+1,0,(struct sockaddr *)&client,leng);
...

In this way, if I send "test" string to the server, it will reply with "test 
server".

I've modified /etc/lvs.cf adding " send "test" " in UDP virtual server 
definition, but as soon as I start pulse (this is "pulse -v -n" output):

pulse: DEBUG -- setting NEED_heartbeat timer
pulse: partner dead: activating lvs
pulse: running command  "/usr/sbin/lvs" "--nodaemon" "-c" "/etc/lvs.cf"
lvs: running command  "/usr/sbin/ipvsadm" "-C"
pulse: DEBUG -- setting SEND_heartbeat timer
lvs: starting virtual service www.mediola.com active: 80
lvs: running command  "/usr/sbin/ipvsadm" "-A" "-t" "192.0.9.231:80" "-s" "wlc"
lvs: running command  "/usr/sbin/nanny" "-c" "-h" "192.168.1.101" "-p" "80" "-
s" "GET / HTTP/1.0\r\n\r\n" "-x" "HTTP" "-a" "180" "-I" "/usr/sbin/ipvsadm" "-
t" "10" "-w" "200" "-V" "192.0.9.231" "-M" "m" "-U" "rup" "--nodaemon"
lvs: create_monitor for www.mediola.com/rs1 running as pid 2210
pulse: DEBUG -- Executing '/sbin/ifconfig eth0:0 n.n.n.n up'
pulse: DEBUG -- Executing '/sbin/ifconfig eth1:1 n.n.n.n up'
pulse: running command  "/sbin/ifconfig" "eth1:1" "192.168.1.254" "up"
pulse: running command  "/usr/sbin/send_arp" "-
i" "eth1" "192.168.1.254" "080009B3251D" "192.168.1.255" "ffffffffffff"
pulse: DEBUG -- Executing '/usr/sbin/send_arp'
pulse: running command  "/sbin/ifconfig" "eth0:0" "192.0.9.231" "up"
nanny: starting LVS client monitor for 192.0.9.231:80

//... nanny managind http

lvs: starting virtual service davide.mediola.com active: 5555

//... nanny managing tcp service on port 5555

lvs: starting virtual service udp.mediola.com active: 10000
lvs: running command  "/usr/sbin/ipvsadm" "-A" "-u" "192.0.9.231:10000" "-
s" "rr"
nanny: starting LVS client monitor for 192.0.9.231:5555
nanny: making 192.168.1.3:5555 available
nanny: running command  "/usr/sbin/ipvsadm" "-a" "-t" "192.0.9.231:5555" "-
r" "192.168.1.3" "-m" "-w" "200"
lvs: running command  "/usr/sbin/nanny" "-c" "-h" "192.168.1.101" "-
p" "10000" "-u" "-s" "pincotest" "-a" "180" "-I" "/usr/sbin/ipvsadm" "-
t" "10" "-w" "200" "-V" "192.0.9.231" "-M" "m" "-U" "rup" "--nodaemon"
lvs: create_monitor for udp.mediola.com/udp2 running as pid 2223
nanny: starting LVS client monitor for 192.0.9.231:10000
lvs: nanny for child udp.mediola.com/udp2 died! shutting down lvs
lvs: shutting down virtual service www.mediola.com
nanny: Terminating due to signal 15
nanny: running command  "/usr/sbin/ipvsadm" "-d" "-t" "192.0.9.231:80" "-
r" "192.168.1.101"
lvs: running command  "/usr/sbin/ipvsadm" "-D" "-t" "192.0.9.231:80"
lvs: shutting down virtual service davide.mediola.com
lvs: running command  "/usr/sbin/ipvsadm" "-D" "-t" "192.0.9.231:5555"
lvs: shutting down virtual service udp.mediola.com
lvs: running command  "/usr/sbin/ipvsadm" "-D" "-u" "192.0.9.231:10000"
pulse: DEBUG -- setting SEND_heartbeat timer

So this, I assume, is the problem:

lvs: nanny for child udp.mediola.com/udp2 died! shutting down lvs
lvs: shutting down virtual service www.mediola.com
nanny: Terminating due to signal 15

After nanny's dead on udp service EVERY ipvsadm redirection is being removed 
and if i try to stop pulse, the heartbeat port remains blocked (I can't bind 
heartbeat to that port anymore). I've got to change heartbeat port number 
before starting pulse again. My netstat -n -l output:

...
udp        0      0 192.0.9.211:1080        0.0.0.0:*                           
udp        0      0 192.0.9.211:1070        0.0.0.0:*                           
udp        0      0 192.0.9.211:1060        0.0.0.0:*                           
udp        0      0 192.0.9.211:1051        0.0.0.0:*                           
udp        0      0 192.0.9.211:1050        0.0.0.0:* 
...

Anyway, the problem might be my UDP server and the way it responds to nanny, 
infact if I don't startup any UDP service on real servers, nanny doesn't hang.

(P.S.: excuse me for my horrible english!)
Comment 4 Red Hat Bugzilla 2000-08-01 12:00:57 EDT
Are you SURE that nanny is using udp instead of tcp?
Does nanny report that it is opening a UDP or TCP socket to the service?
(you seem to have cut that part out).  Do you have protocol=udp defined in
the lcs.cf file for the virtual service?

I ask this because I do not see a "-u" switch on the nanny startup, which tells
it to do udp, so I need to determine if this is your error or a bug.

Comment 5 Red Hat Bugzilla 2000-08-01 12:37:15 EDT
Yes, I've specified protocol=udp in my /etc/lvs.cf file (here is an abstract):

virtual udp.mediola.com {
        address = 192.0.9.231 eth0:0
        active = 1
        load_monitor = rup
        timeout = 10
        reentry = 180
        port = 10000
        protocol = udp
        send = "pincotest"
        scheduler = rr

From my log:
lvs: running command  "/usr/sbin/ipvsadm" "-A" "-u" "192.0.9.231:10000" "-
s" "rr"

So the virtual UDP service is created, but real servers seem not to be added 
since nanny dies (just after the first udp trasmission( that I've logged in my 
udp server!))


Comment 6 Red Hat Bugzilla 2000-08-01 12:50:13 EDT
>From my log:
>           lvs: running command  "/usr/sbin/ipvsadm" "-A" "-u"
>"192.0.9.231:10000" "-
>           s" "rr"


This is the ipvsadm startup. I need to see the nanny startup, and the debug
statement "Opening XXX socket".

Comment 7 Red Hat Bugzilla 2000-08-01 13:13:39 EDT
When this error occurs, there isn't such a statement: I've commented out every 
entry in lvs.cf file regarding tcp and so on. UDP is at the moment the only 
service being redirected (on pot 10000) and this is the output of pulse -n -v:

pulse: STARTING PULSE AS MASTER
pulse: DEBUG -- setting SEND_heartbeat timer
pulse: DEBUG -- setting SEND_heartbeat timer
pulse: DEBUG -- setting SEND_heartbeat timer
pulse: DEBUG -- setting SEND_heartbeat timer
pulse: DEBUG -- setting SEND_heartbeat timer
pulse: DEBUG -- setting NEED_heartbeat timer
pulse: partner dead: activating lvs
pulse: running command  "/usr/sbin/lvs" "--nodaemon" "-c" "/etc/lvs.cf"
pulse: DEBUG -- setting SEND_heartbeat timer
pulse: DEBUG -- Executing '/sbin/ifconfig eth0:0 n.n.n.n up'
pulse: DEBUG -- Executing '/sbin/ifconfig eth1:1 n.n.n.n up'
pulse: running command  "/sbin/ifconfig" "eth1:1" "192.168.1.254" "up"
pulse: running command  "/sbin/ifconfig" "eth0:0" "192.0.9.231" "up"
lvs: running command  "/usr/sbin/ipvsadm" "-C"
lvs: starting virtual service udp.mediola.com active: 10000
lvs: running command  "/usr/sbin/ipvsadm" "-A" "-u" "192.0.9.231:10000" "-
s" "rr"
lvs: running command  "/usr/sbin/nanny" "-c" "-h" "192.168.1.101" "-
p" "10000" "-u" "-s" "pincotest" "-a" "180" "-I" "/usr/sbin/ipvsadm" "-
t" "10" "-w" "200" "-V" "192.0.9.231" "-M" "m" "-U" "rup" "--nodaemon"
lvs: create_monitor for udp.mediola.com/udp2 running as pid 4229
nanny: starting LVS client monitor for 192.0.9.231:10000
pulse: running command  "/usr/sbin/send_arp" "-
i" "eth0" "192.0.9.231" "525400EA4FF7" "192.0.9.255" "ffffffffffff"
pulse: DEBUG -- Executing '/usr/sbin/send_arp'
pulse: running command  "/usr/sbin/send_arp" "-
i" "eth1" "192.168.1.254" "080009B3251D" "192.168.1.255" "ffffffffffff"
pulse: DEBUG -- Executing '/usr/sbin/send_arp'
lvs: nanny for child udp.mediola.com/udp2 died! shutting down lvs
lvs: shutting down virtual service udp.mediola.com
lvs: running command  "/usr/sbin/ipvsadm" "-D" "-u" "192.0.9.231:10000"
pulse: DEBUG -- setting SEND_heartbeat timer
pulse: DEBUG -- setting SEND_heartbeat timer
pulse: gratuitous lvs arps finished
pulse: DEBUG -- setting SEND_heartbeat timer
...And so on...

Am I forgetting something?
Comment 8 Red Hat Bugzilla 2000-08-01 13:46:15 EDT
The nanny statement will be in the /var/log/messages file. Not all the debug
messages go to the screen.

According to the command line above, nanny is not beiong started with "-u" for
UDP. The log file may tell us more.
Comment 9 Red Hat Bugzilla 2000-08-01 13:51:27 EDT
Opps. nanny IS being started with "-u" -- I see it:

>lvs: running command  "/usr/sbin/nanny" "-c" "-h" "192.168.1.101" "-          
>p" "10000" "-u" "-s" "pincotest" "-a" "180" "-I" "/usr/sbin/ipvsadm" "-
>t" "10" "-w" "200" "-V" "192.0.9.231" "-M" "m" "-U" "rup" "--nodaemon"

-------------^ there

Should be working.

The log file will have the result of your send/expect attempt.

Comment 10 Red Hat Bugzilla 2000-08-01 13:55:12 EDT
Here you are the log, I'm going home now, I'll give you some more news tomorrow 
morning! :P

Aug  1 19:48:55 client1 pulse[4354]: STARTING PULSE AS MASTER
ago  1 19:48:55 client1 pulse: pulse startup succeeded
Aug  1 19:48:56 client1 nanny[1089]: READ to 192.168.1.3:10000 timed out
Aug  1 19:49:05 client1 pulse[4354]: partner dead: activating lvs
Aug  1 19:49:05 client1 pulse[4362]: running 
command  "/sbin/ifconfig" "eth1:1" "192.168.1
.254" "up"
Aug  1 19:49:05 client1 pulse[4363]: running 
command  "/sbin/ifconfig" "eth0:0" "192.0.9.2
31" "up"
Aug  1 19:49:05 client1 lvs: running command  "/usr/sbin/ipvsadm" "-C"
Aug  1 19:49:05 client1 pulse[4360]: running command  "/usr/sbin/send_arp" "-
i" "eth1" "19
2.168.1.254" "080009B3251D" "192.168.1.255" "ffffffffffff"
Aug  1 19:49:05 client1 lvs[4357]: starting virtual service udp.mediola.com 
active: 10000
Aug  1 19:49:05 client1 lvs[4357]: running command  "/usr/sbin/ipvsadm" "-A" "-
u" "192.0.9
.231:10000" "-s" "rr"
Aug  1 19:49:05 client1 pulse[4361]: running command  "/usr/sbin/send_arp" "-
i" "eth0" "19
2.0.9.231" "525400EA4FF7" "192.0.9.255" "ffffffffffff"
Aug  1 19:49:05 client1 lvs[4357]: running command  "/usr/sbin/nanny" "-c" "-
h" "192.168.1
.101" "-p" "10000" "-u" "-s" "pincotest" "-a" "180" "-I" "/usr/sbin/ipvsadm" "-
t" "10" "-w
" "200" "-V" "192.0.9.231" "-M" "m" "-U" "rup"
Aug  1 19:49:05 client1 lvs[4357]: create_monitor for udp.mediola.com/udp2 
running as pid 
4368
Aug  1 19:49:05 client1 nanny[4368]: starting LVS client monitor for 
192.0.9.231:10000
Aug  1 19:49:05 client1 lvs[4357]: nanny for child udp.mediola.com/udp2 died! 
shutting dow
n lvs
Aug  1 19:49:05 client1 lvs[4357]: shutting down virtual service udp.mediola.com
Aug  1 19:49:05 client1 lvs[4357]: running command  "/usr/sbin/ipvsadm" "-D" "-
u" "192.0.9
.231:10000"
Aug  1 19:49:07 client1 nanny[2101]: READ to 192.168.1.3:10000 timed out
Aug  1 19:49:10 client1 nanny[2001]: READ to 192.168.1.3:10000 timed out
Aug  1 19:49:10 client1 pulse[4359]: gratuitous lvs arps finished
Comment 11 Red Hat Bugzilla 2000-08-01 14:47:21 EDT
Hummm. nanny debug mode is not enabled, so not all the output is there.

Also; do you requre a "return" when sending your udp test string? If so, you
need to include a "\n" or "\n\r" in your send string. If your server sends a
response to that string, you might want to add a 'expect = "*"' to your config.


The problem appears to be that nanny is complaining that the udp server is not
sending a response within 10 seconds of testing it. None of the output shown
indicates whether nanny actually sent your test string.

The problem might be one of two things:

1. The udp communications to the real server (send and/or receive) are not
working, and this has nothing to do with nanny. In other words; lvs is not
handling udp to the real server correctly, and nanny problems are the result.

2. The send expect is failing because of nanny somehow. 

There are several ways to track this down. Probably using the tcpdump command on
the interfaces of the machines involved and seeing if the udp traffic actually
reaches it's destinations would be a good start. Another would be to, for now,
eliminate LVS by setting up your servers as a 2 node FOS setup, and seeing if
nanny and fos are happy testing your udp server.

Running nanny directly instead of bothering with lvs and pulse might help.
typing:

/usr/sbin/nanny -n -v -c -h 192.168.1.101 -p 10000 -u -s "pincotest"
  -a 180 -t" 10 -w 200 -V 192.0.9.231 -M m -U rup

will run nanny and display it's logic. If the send/expect work, you'll see the
program terminate with an attempt to run ipvsadm

Comment 12 Red Hat Bugzilla 2000-08-01 14:49:11 EDT
BTW -- the reason debug mode was not enabled is because lvs has no debug mode to
set to pass along.

Starting nanny directly and enabling debug mode should help a lot

Comment 13 Red Hat Bugzilla 2000-08-02 04:26:47 EDT
This morning progress:

   1) I've tried to add a \n to the "send" string, but pulse crashes in the 
same way as it did yesterday.

   2) I've launched nanny with "nanny -n -v -c -h 192.168.1.101 -p 10000 -u -
s "pincotest" -a 180 -t 10 -w 200 -V 192.0.9.231 -M m -U rup" (after having 
created all needed Ip aliases), but this is the output:

nanny: starting LVS client monitor for 192.0.9.231:10000
nanny: Send_string len=9, text="pincotest"
nanny: Expect_string is NULL
nanny: Opening UDP socket to remote service port 10000...
nanny: Connecting socket to remote address...
nanny: DEBUG -- Posting CONNECT poll()
nanny: Sending len=9, text="pincotest"
nanny: DEBUG -- Posting READ poll()
nanny: DEBUG -- READ poll() completed (1,1)
nanny: Posting READ I/O; expecting 1 character(s)...
nanny: DEBUG -- READ returned 1
Segmentation fault (core dumped)

Since nanny seems to be the problem, let's focus on it (I've not recompiled lvs 
yet)

   3) Expecting a reply from the udp server such as "pincotest server" (my udp 
server receives a word and adds " server" to its reply", this is the output: 
("nanny -n -v -c -h 192.168.1.101 -p 10000 -u -s "pincotest" -x "pincotest 
server" -a 180 -t 10 -w 200 -V 192.0.9.231 -M m -U rup"):

nanny: starting LVS client monitor for 192.0.9.231:10000
nanny: Send_string len=9, text="pincotest"
nanny: Expect_string len=16, text="pincotest server"
nanny: Opening UDP socket to remote service port 10000...
nanny: Connecting socket to remote address...
nanny: DEBUG -- Posting CONNECT poll()
nanny: Sending len=9, text="pincotest"
nanny: DEBUG -- Posting READ poll()
nanny: DEBUG -- READ poll() completed (1,1)
nanny: Posting READ I/O; expecting 16 character(s)...
nanny: DEBUG -- READ returned 16
nanny: READ expected len=16, text="pincotest server"
nanny: READ got len=16, text=pincotest 
r ser
nanny: avail: 0 active: 0: count: 0

...Repeating every few seconds.

Now it seems to work, except for the fact that my server receives "pincotest \n 
ver" the first time, "pincotest \n ver server" the second time, "pincotest \n 
ver server server" the third and so on. It seems there is some "loop" in 
send/reply strings.

At this moment i think this might be a problem of MY udp server, or at least in 
the way it communicate with nanny.

   4) Being less restrictive and waiting for a less "complex" reply (nanny -n -
v -c -h 192.168.1.101 -p 10000 -u -s "pincotest\n\r" -x "pincotest" -a 180 -t 
10 -w 200 -V 192.0.9.231 -M m -U rup):

nanny -n -v -c -h 192.168.1.101 -p 10000 -u -s "pincotest\n\r" -x "pincotest" -
a 180 -t 10 -w 200 -V 192.0.9.231 -M m -U rup 
nanny: starting LVS client monitor for 192.0.9.231:10000
nanny: Send_string len=11, text="pincotest
"
nanny: Expect_string len=9, text="pincotest"
nanny: Opening UDP socket to remote service port 10000...
nanny: Connecting socket to remote address...
nanny: DEBUG -- Posting CONNECT poll()
nanny: Sending len=11, text="pincotest
"
nanny: DEBUG --Posting READ poll()
nanny: DEBUG -- READ poll() completed (1,1)
nanny: Posting READ I/O; expecting 9 character(s)...
nanny: DEBUG -- READ returned 9
nanny: READ expected len=9, text="pincotest"
nanny: READ got len=9, text=pincotest
nanny: avail: 1 active: 0: count: 19
nanny: making 192.168.1.101:10000 available
nanny: running command  "/usr/sbin/ipvsadm" "-a" "-u" "192.0.9.231:10000" "-
r" "192.168.1.101" "-m" "-w" "200"
setsockopt failed: Processo inesistente
Service not defined
nanny: /usr/sbin/ipvsadm command failed!

So now at least nanny thinks that UDP service is available and tries to call 
ipvsadm. I've forgotten to add the virtual server, so:

   5) having launched "ipvsadm -A -u 192.0.9.231:10000" and repeating point 4:

[root@client1 socket]# nanny -n -v -c -h 192.168.1.101 -p 10000 -u -
s "pincotest\n\r" -x "pincotest" -a 180 -t 10 -w 200 -V 192.0.9.231 -M m -U rup 
nanny: starting LVS client monitor for 192.0.9.231:10000
nanny: Send_string len=11, text="pincotest
"
nanny: Expect_string len=9, text="pincotest"
nanny: Opening UDP socket to remote service port 10000...
nanny: Connecting socket to remote address...
nanny: DEBUG -- Posting CONNECT poll()
nanny: Sending len=11, text="pincotest
"
nanny: DEBUG -- Posting READ poll()
nanny: DEBUG -- READ poll() completed (1,1)
nanny: Posting READ I/O; expecting 9 character(s)...
nanny: DEBUG -- READ returned 9
nanny: READ expected len=9, text="pincotest"
nanny: READ got len=9, text=pincotest
nanny: avail: 1 active: 0: count: 19
nanny: making 192.168.1.101:10000 available
nanny: running command  "/usr/sbin/ipvsadm" "-a" "-u" "192.0.9.231:10000" "-
r" "192.168.1.101" "-m" "-w" "200"
nanny: Opening UDP socket to remote service port 10000...
nanny: Connecting socket to remote address...
nanny: DEBUG -- Posting CONNECT poll()
nanny: Sending len=11, text="pincotest
"
nanny: DEBUG -- Posting READ poll()
nanny: DEBUG -- READ poll() completed (1,1)
nanny: Posting READ I/O; expecting 9 character(s)...
nanny: DEBUG -- READ returned 9
nanny: READ expected len=9, text="pincotest"
nanny: READ got len=9, text=pincotest
nanny: avail: 1 active: 1: count: 20
nanny: running command  "rup" "192.168.1.101"
nanny: Loadavg of 192.168.1.101 is 0.000000
nanny: Computing new weight 300 based the last weight 200 and load 0.000000 on 
currCount 20
nanny: Adjusting weight of 192.168.1.101:10000 to 300
nanny: running command  "/usr/sbin/ipvsadm" "-e" "-u" "192.0.9.231:10000" "-
r" "192.168.1.101" "-m" "-w" "300"

Now IT WORKS!!! Thank you Keith, this demonstrate that it was MY fault, in the 
way I was launching pulse/nanny/lvs! :)

I've also tried to stop and restart my udp server and nanny correctly 
adds/removes it in ipvsadm redirection table! :))

  ##STILL TO BE DONE:##

Now that nanny works, it seems that there is something strange with ipvsadm: if 
I try to connect with my udp client to the virtual ip, I can send strings, the 
server receives them, but the client doesn't receive any reply!
Note that if I try to connect directly to the real server (the client Pc has 
two NIC interface on two different subnets: 192.0.9.0/24 and 192.168.1.0/24) 
I've not got any problem. 

There's still something strange, since my udp server continues 
receiving "pincotest \n rver server server server...." strings, I'll try to fix 
it in some way.

I think that nanny should gracefully die instead of crashing if it has some 
problem with some service: at the moment, if I use a wrong sintax in 
send/expect part of nanny, pulse hangs and the heartbeat port ramains unusable.

Again, thank you for your patience!
Comment 14 Red Hat Bugzilla 2000-08-03 11:35:14 EDT
Hummm. Some of what you report is interesting and prompts me to perform some
testing, but I'm glad you got it working. By the way -- if you set the expect
string to "*", then it will accept any response from the server as valid.

I'm going to mark this bug closed. If you find more problems, just post it and
we'll reopen it.

Thanks

Note You need to log in before you can comment on or make changes to this bug.