2009-12-10 08:41:52

by Xiaotian Feng

[permalink] [raw]
Subject: [PATCH] ipvs: fix synchronization on connection close

commit 9d3a0de makes slaves expire as they would do on the master
with much shorter timeouts. But it introduces another problem:
When we close a connection, on master server the connection became
CLOSE_WAIT/TIME_WAIT, it was synced to slaves, but if master is
finished within it's timeouts (CLOSE), it will not be synced to
slaves. Then slaves will be kept on CLOSE_WAIT/TIME_WAIT until
timeout reaches. Thus we should also sync with CLOSE.

Signed-off-by: Xiaotian Feng <[email protected]>
Cc: Wensong Zhang <[email protected]>
Cc: Simon Horman <[email protected]>
Cc: Julian Anastasov <[email protected]>
Cc: David S. Miller <[email protected]>
---
net/netfilter/ipvs/ip_vs_core.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c
index b95699f..847ffca 100644
--- a/net/netfilter/ipvs/ip_vs_core.c
+++ b/net/netfilter/ipvs/ip_vs_core.c
@@ -1366,6 +1366,7 @@ ip_vs_in(unsigned int hooknum, struct sk_buff *skb,
== sysctl_ip_vs_sync_threshold[0])) ||
((cp->protocol == IPPROTO_TCP) && (cp->old_state != cp->state) &&
((cp->state == IP_VS_TCP_S_FIN_WAIT) ||
+ (cp->state == IP_VS_TCP_S_CLOSE) ||
(cp->state == IP_VS_TCP_S_CLOSE_WAIT) ||
(cp->state == IP_VS_TCP_S_TIME_WAIT)))))
ip_vs_sync_conn(cp);
--
1.6.5.2


2009-12-11 03:35:41

by Simon Horman

[permalink] [raw]
Subject: Re: [PATCH] ipvs: fix synchronization on connection close

On Thu, Dec 10, 2009 at 04:41:42PM +0800, Xiaotian Feng wrote:
> commit 9d3a0de makes slaves expire as they would do on the master
> with much shorter timeouts. But it introduces another problem:
> When we close a connection, on master server the connection became
> CLOSE_WAIT/TIME_WAIT, it was synced to slaves, but if master is
> finished within it's timeouts (CLOSE), it will not be synced to
> slaves. Then slaves will be kept on CLOSE_WAIT/TIME_WAIT until
> timeout reaches. Thus we should also sync with CLOSE.
>
> Signed-off-by: Xiaotian Feng <[email protected]>
> Cc: Wensong Zhang <[email protected]>
> Cc: Simon Horman <[email protected]>
> Cc: Julian Anastasov <[email protected]>
> Cc: David S. Miller <[email protected]>

This seems reasonable to me.

Acked-by: Simon Horman <[email protected]>

> ---
> net/netfilter/ipvs/ip_vs_core.c | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c
> index b95699f..847ffca 100644
> --- a/net/netfilter/ipvs/ip_vs_core.c
> +++ b/net/netfilter/ipvs/ip_vs_core.c
> @@ -1366,6 +1366,7 @@ ip_vs_in(unsigned int hooknum, struct sk_buff *skb,
> == sysctl_ip_vs_sync_threshold[0])) ||
> ((cp->protocol == IPPROTO_TCP) && (cp->old_state != cp->state) &&
> ((cp->state == IP_VS_TCP_S_FIN_WAIT) ||
> + (cp->state == IP_VS_TCP_S_CLOSE) ||
> (cp->state == IP_VS_TCP_S_CLOSE_WAIT) ||
> (cp->state == IP_VS_TCP_S_TIME_WAIT)))))
> ip_vs_sync_conn(cp);
> --
> 1.6.5.2
>
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html

2009-12-14 15:39:37

by Patrick McHardy

[permalink] [raw]
Subject: Re: [PATCH] ipvs: fix synchronization on connection close

Simon Horman wrote:
> On Thu, Dec 10, 2009 at 04:41:42PM +0800, Xiaotian Feng wrote:
>> commit 9d3a0de makes slaves expire as they would do on the master
>> with much shorter timeouts. But it introduces another problem:
>> When we close a connection, on master server the connection became
>> CLOSE_WAIT/TIME_WAIT, it was synced to slaves, but if master is
>> finished within it's timeouts (CLOSE), it will not be synced to
>> slaves. Then slaves will be kept on CLOSE_WAIT/TIME_WAIT until
>> timeout reaches. Thus we should also sync with CLOSE.
>>
>> Signed-off-by: Xiaotian Feng <[email protected]>
>> Cc: Wensong Zhang <[email protected]>
>> Cc: Simon Horman <[email protected]>
>> Cc: Julian Anastasov <[email protected]>
>> Cc: David S. Miller <[email protected]>
>
> This seems reasonable to me.
>
> Acked-by: Simon Horman <[email protected]>

Applied, thanks.