> -----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
|