LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

IPVS-2.4: ip_vs_conn_expire() ping pong for persistent template

To: lvs-users@xxxxxxxxxxxxxxxxxxxxxx
Subject: IPVS-2.4: ip_vs_conn_expire() ping pong for persistent template
From: Roberto Nibali <ratz@xxxxxx>
Date: Wed, 02 Nov 2005 15:12:10 +0100
Hello,

I don't exactly know what happens here right now, but the following
setup does not expire the persistent template anymore:

IP Virtual Server version 1.0.12 (size=4096)
Prot LocalAddress:Port            Forward Weight Uthreshold Lthreshold
ActiveConn InActConn  Flags
  -> RemoteAddress:Port
TCP  a.b.c.20:80 hprio persistent 150
  -> a.b.c.14:80             Route   1      0          0          0
     1          183
  -> a.b.c.23:80             Route   5      10         7          0
     0          183
  -> a.b.c.22:80             Route   5      10         7          0
     0          183
  -> a.b.c.21:80             Route   5      10         7          0
     0          183
TCP 01:26  NONE        172.27.235.5:0     a.b.c.20:65535 a.b.c.14:65535

lb-lb0-phys:~# grep . /proc/sys/net/ipv4/vs/*
/proc/sys/net/ipv4/vs/am_droprate:10
/proc/sys/net/ipv4/vs/amemthresh:2048
/proc/sys/net/ipv4/vs/cache_bypass:0
/proc/sys/net/ipv4/vs/debug_level:7
/proc/sys/net/ipv4/vs/drop_entry:0
/proc/sys/net/ipv4/vs/drop_packet:0
/proc/sys/net/ipv4/vs/expire_nodest_conn:1
/proc/sys/net/ipv4/vs/expire_quiescent_template:1
/proc/sys/net/ipv4/vs/nat_icmp_send:0
/proc/sys/net/ipv4/vs/secure_tcp:0
/proc/sys/net/ipv4/vs/sync_threshold:3
/proc/sys/net/ipv4/vs/timeout_close:10
/proc/sys/net/ipv4/vs/timeout_closewait:60
/proc/sys/net/ipv4/vs/timeout_established:480
/proc/sys/net/ipv4/vs/timeout_finwait:60
/proc/sys/net/ipv4/vs/timeout_icmp:60
/proc/sys/net/ipv4/vs/timeout_lastack:30
/proc/sys/net/ipv4/vs/timeout_listen:120
/proc/sys/net/ipv4/vs/timeout_synack:100
/proc/sys/net/ipv4/vs/timeout_synrecv:10
/proc/sys/net/ipv4/vs/timeout_synsent:60
/proc/sys/net/ipv4/vs/timeout_timewait:60
/proc/sys/net/ipv4/vs/timeout_udp:180

What happens is, that 15 seconds before the template timer expires,
ip_vs_conn_expire() is called and cp->n_control is 0 and we hit
ip_vs_conn_unhash() which seems to fail and we are bounced to
expire_later which then prints following line:

Aug 30 07:36:20 s_int@lb-lb0-phys IPVS: delayed: conn->refcnt-1=5
conn.n_control=0

15 seconds later, when the template timer is expiring, somehow it seems
like cp->n_control is 1 and thus we again are bounced to expire_later
which then prints following situation:

Aug 30 07:36:35 s_int@lb-lb0-phys IPVS: delayed: conn->refcnt-1=1
conn.n_control=1

This confuses me, do you guys have an explanation? Somehow I mucked up
the dest->refcnt stuff ...

Thanks,
Roberto Nibali, ratz
-- 
-------------------------------------------------------------
addr://Kasinostrasse 30, CH-5001 Aarau tel://++41 62 823 9355
http://www.terreactive.com             fax://++41 62 823 9356
-------------------------------------------------------------
terreActive AG                       Wir sichern Ihren Erfolg
-------------------------------------------------------------

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