From: Hailiang Zhang <zhang.zhanghailiang@huawei.com>
To: Jason Wang <jasowang@redhat.com>,
zhangchen.fnst@cn.fujitsu.com, lizhijian@cn.fujitsu.com
Cc: xuquan8@huawei.com, qemu-devel@nongnu.org, pss.wulizhen@huawei.com
Subject: Re: [Qemu-devel] [PATCH v2 2/3] filter-rewriter: fix memory leak for connection in connection_track_table
Date: Mon, 27 Feb 2017 18:29:59 +0800 [thread overview]
Message-ID: <58B3FFA7.2040205@huawei.com> (raw)
In-Reply-To: <562f8a27-63dc-6be8-ca2d-cf91c1ce4fe8@redhat.com>
On 2017/2/27 17:05, Jason Wang wrote:
>
>
> On 2017年02月27日 14:53, Hailiang Zhang wrote:
>>> I think the issue is that your code can not differ A from B.
>>>
>>
>> We have a parameter 'fin_ack_seq' recording the sequence of
>> 'FIN=1,ACK=1,seq=w,ack=u+1' and if the ack value from the opposite
>> side is is 'w+1', we can consider this connection is closed, no ?
>
Hi Jason,
Thanks very much for your patience.
> Let's see what happens, consider VM is doing active close (reuse the
> figure above):
>
(We didn't support tracking the connection start
by the VM in current rewriter codes.
I mean the Client side is VM).
Your figure is not quite correct, the process should be:
(VM)
Client: Server:
ESTABLISHED| |
| -> FIN=1,seq=u -> |
FIN_WAIT_1 | |
| <- ACK=1,seq=v,ack=u+1 <- |
FINA_WAIT_2| |CLOSE_WAIT
| <- FIN=1,ACK=1,seq=w,ack=u+1<-|
handle_secondary():
fin_ack_seq = w
tcp_state = TCPS_LAST_ACK
| |LAST+ACK
| -> ACK=1,seq=u+1,ack=w+1 |
TIME_WAIT | |CLOSED
CLOSED | |
handle_primary():
if (ack = fin_ack_seq + 1)
g_hash_table_remove()
> (VM)
> Client: Server:
>
> ESTABLISHED| |
> | -> FIN=1,seq=u -> |
>
> handle_secondary():
> fin_ack_seq = u
> tcp_state = TCPS_LAST_ACK
>
> FIN_WAIT_1 | |
> | <- ACK=1,seq=v,ack=u+1 <- |
>
> handle_primary():
> fin_ack_seq = ack + 1
> g_hash_table_remove()
>
> But we probably want it to be removed in TIME_WAIT_CLOSED.
>
Yes, we should removed it after 2MSL, because the last
the sever side may not get the 'ACK=1,seq=v,ack=u+1' packet,
and it will resend the 'FIN=1,ACK=1,seq=w,ack=u+1'.
Thanks.
> Thanks
>
> .
>
next prev parent reply other threads:[~2017-02-27 10:30 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-22 3:46 [Qemu-devel] [PATCH v2 0/3] filter-rewriter: fix two bugs and one optimization zhanghailiang
2017-02-22 3:46 ` [Qemu-devel] [PATCH v2 1/3] net/colo: fix memory double free error zhanghailiang
2017-02-22 8:39 ` Zhang Chen
2017-02-22 3:46 ` [Qemu-devel] [PATCH v2 2/3] filter-rewriter: fix memory leak for connection in connection_track_table zhanghailiang
2017-02-22 8:07 ` Jason Wang
2017-02-22 8:45 ` Hailiang Zhang
2017-02-22 8:51 ` Hailiang Zhang
2017-02-23 4:16 ` Jason Wang
2017-02-27 3:11 ` Hailiang Zhang
2017-02-27 3:40 ` Jason Wang
2017-02-27 4:09 ` Hailiang Zhang
2017-02-27 5:35 ` Jason Wang
2017-02-27 6:53 ` Hailiang Zhang
2017-02-27 9:05 ` Jason Wang
2017-02-27 10:29 ` Hailiang Zhang [this message]
2017-02-28 3:14 ` Jason Wang
2017-02-22 3:46 ` [Qemu-devel] [PATCH v2 3/3] filter-rewriter: skip net_checksum_calculate() while offset = 0 zhanghailiang
2017-02-24 8:08 ` Zhang Chen
2017-02-24 8:23 ` Zhang Chen
2017-02-27 1:36 ` Hailiang Zhang
2017-02-27 3:44 ` Zhang Chen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=58B3FFA7.2040205@huawei.com \
--to=zhang.zhanghailiang@huawei.com \
--cc=jasowang@redhat.com \
--cc=lizhijian@cn.fujitsu.com \
--cc=pss.wulizhen@huawei.com \
--cc=qemu-devel@nongnu.org \
--cc=xuquan8@huawei.com \
--cc=zhangchen.fnst@cn.fujitsu.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).