On 3/16/07, Roberto Nibali <ratz@xxxxxxxxxxxx> wrote:
I've cc'd Horms, since that's the way to get his attention regarding
ldirectord patches. He's insanely busy, so you need some patience.
Thanks for information. I will CC Horms on relevant mails.
Does this happen in case the:
1. old configuration == new configuration?
No configuration changes. Just:
- ldirectord start
- ldirectord reload
- BadThingsWillHappen ;)
I'm not very familiar with ldirectord, although I've dug through it in
the past. However, your fix seems appropriate. Nevertheless, I find it
somewhat interesting that you're the first one hitting this issue, as if
noone ever reloaded ldirectord :). It's clear that when reloading
(sending SIGHUP to the $PID) ld_setup() is not explicitly called anymore.
I was surprised too ;).
Is your old $PID available when this happens?
Which $PID do you mean? There's $pid in the code, but it does not
seem to be initialized anywhere... Nevertheless, ldirectord status
reports same pid.
Can you also check the pending signals with ps as when it comes
to a reload and your problem is exhibited?
No pending signals displayed by ps.
Horms:
Test case - sure, my config is plain simple, as it is only testing
configuration:
checktimeout=5
checkinterval=10
autoreload=no
quiescent=yes
virtual=192.168.13.35:25
real=192.168.13.36:25 gate
real=192.168.13.37:25 gate
service=smtp
scheduler=wlc
protocol=tcp
checktype=negotiate
checkport=25
That's all. Backend servers run postfix and after reload, posftix log
shows that testing SMTP connections are no longer correctly closed
(lost connection after CONNECT from ...).
ldirectord.log contains few more errors:
system(/sbin/ipvsadm -e 192.168.13.35:25 -r 192.168.13.36:25 -w ) failed:
system(/sbin/ipvsadm -D 192.168.13.35:25) failed: Interrupted system call
As you can see, few arguments are missing. As far as I can tell,
those arguments are set up by ld_setup function and are lost after
reload, when @VIRTUAL is rebuild from scratch.
th.
|