Hello,
On Thu, 1 Sep 2005, Agostino di Salle wrote:
> Hi,
> I think there are three bugs in LVS code that are related to the problem
> reported in this mailing list by other users ("taking realserver out for
> maintenance" and similar problem).
>
> The first problem is that LVS don't expire ESTABLISHED connection that
> point to a realserver with weight == 0 when expire_nodest_conn is enabled.
This is intentional, the flag is for deleted real servers.
It is known that people desire different things when setting weight
to 0 but the current semantic is that it does not drop connections
in the middle.
> The second problem is that LVS don't expire connection template
> (persistent connection information) that point to a realserver with weight
> == 0 when expire_quiescent_template is enabled.
This is bug but the right fix is to replace 'if (ct->cport)'
with 'if (ct->vport != 65535)', it seems i broke it with some
hashing optimizations.
> The third problem is that LVS refresh connection template expire time only
> on new connection and not everytime that a packet arrive for a real
> connection related to an existing connection template.
Wensong should comment if a flag is useful for such behavior.
But a solution that sets timer to the persistent timeout when last
connection is detached in ip_vs_control_del is more acceptable, there
is no reason to waste resources for every packet.
Regards
--
Julian Anastasov <ja@xxxxxx>
|