LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

RE: I think I found a minor bug in persistence time-outs.

To: "Julian Anastasov" <ja@xxxxxx>
Subject: RE: I think I found a minor bug in persistence time-outs.
Cc: <lvs-users@xxxxxxxxxxxxxxxxxxxxxx>
From: "Terry Green" <tgreen@xxxxxxxxx>
Date: Fri, 7 Feb 2003 20:51:02 -0500
> -----Original Message-----
> From: Julian Anastasov [mailto:ja@xxxxxx]
> Sent: Friday, February 07, 2003 8:29 PM
> To: Terry Green
> Cc: lvs-users@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: I think I found a minor bug in persistence time-outs.
> 
> 
> 
>       Hello,
> 
> On Thu, 6 Feb 2003, Terry Green wrote:
> 
> > - however, if the template record is allowed to expire, it 
> will be kept
> > because there's still an active connection, but it's time 
> will be reset
> > to IP_VS_S_TIME_WAIT constant (defaulted to 2 minutes in 
> ip_vs_conn.c)
> > rather than to the persistence time set for this session.   
> Further, the
> 
>       Yes, as implemented, the persistence timeout guarantees
> afinity starting from the first connection. It lasts _after_ the
> last connection from this "session" is terminated. There is still
> no option to say "persistence time starts for each connection",
> it could be useful.
> 
Agree completely - however, I expected the template record to be reset to the 
session persistence time, not to the value of IP_VS_S_TIME_WAIT

> > data structure for the connection template appears to have been
> > corrupted, as any further connections from the client reset 
> the template
> > time to 2 minutes instead of the original persistence time.
> 
> > - Running my tests again, I see the connection template record being
> > reset to 1:40 instead of 2:00.
> 
>       May be you see it 20 seconds after the 2-minute cycle
> is restarted. It is "reset" only when its timer expires, not when
> the controlled connections expire.

Nope - perhaps I wasn't clear... I was watching ipvsadm -Lc every second.
I did the tests originally and saw the template record being reset to 2 minutes 
if it expired with an active connection (even though the persistence setting 
for the connection was NOT 2 minutes).   Then I did another connect from the 
client, and the template record was reset again to 2 minutes (not the 
persistence setting again), suggesting the template record data structure had 
somehow had it's persistence time reset from the original setting to 2 minutes.

Then, to prove to myself that my reading of the source was accurate, I hacked 
the source to make IP_VS_TIME_WAIT 2*50*HZ instead of 2*60*HZ, and with the 
newly compiled kernel, the template record started being reset to 100 seconds 
when it expired with an active connection.


My expectation would have been that the template record's timer would get reset 
to the session persistence value rather than to IP_VS_TIME_WAIT.
Terry Green


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