On Fri, 6 May 2005, Julian Anastasov wrote:
> My first thought is that due to some locking problems the
> cp->refcnt is in invalid state which only the debugging can prove.
> There are two options, it is above or it is below the expected
> value 1 during expiration.
>
> If you compile with CONFIG_IP_VS_DEBUG it will not delay too
> much the processing, only when you set the /proc value the things
> can go catastrophic, so if you decide to try it i can recommend you
> not to set it on boot but in some script that you can run at any time.
> This script should do something like:
>
> echo 20 > /proc/sys/net/ipv4/vs/debug_level
> sleep 2
> echo 0 > /proc/sys/net/ipv4/vs/debug_level
>
Hi,
Ran ~8 seconds in debug_level 8:
/var/log# grep delayed kern.log | cut -d':' -f 4- | sort | uniq -c
272 IPVS: delayed: refcnt-1=-1 conn.n_control=0
1 IPVS: delayed: refcnt-1=-12 conn.n_control=0
104 IPVS: delayed: refcnt-1=-2 conn.n_control=0
26 IPVS: delayed: refcnt-1=-3 conn.n_control=0
8 IPVS: delayed: refcnt-1=-4 conn.n_control=0
1 IPVS: delayed: refcnt-1=-5 conn.n_control=0
1 IPVS: delayed: refcnt-1=-6 conn.n_control=0
1 IPVS: delayed: refcnt-1=-8 conn.n_control=0
3184 IPVS: delayed: refcnt-1=0 conn.n_control=0
Well, that's interresting no?!
So... what's next? I sit back and relax while you go bug hunting?? :)
Seriously, I looked over the code hoping I would find the missing inc or
whatever... but I'm afraid this is out of my league. But if there is
anything else you want me to try or do just let me know.
Rgds,
Mark.
|