[Bug 265588] [TCP] - tcp send a retransmission identical sequence number packet with different payload
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 20 Oct 2022 14:38:11 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=265588
Michael Zhilin <mizhka@FreeBSD.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |mizhka@FreeBSD.org
Severity|Affects Only Me |Affects Some People
--- Comment #19 from Michael Zhilin <mizhka@FreeBSD.org> ---
Hi,
I've found same defect on 13.1-RELEASE with fetching of packages via HTTP
protocol.
Shortly speaking, https://reviews.freebsd.org/D36046 is fix for this bug. It's
already committed to stable/13 and main.
The issue is not reproduced on 14-current and stable/13.
My setup is following:
- FreeBSD guest in data center in same town (with poudriere and HTTP nginx)
- I use VPN & WiFi to access it
Sometimes packets are lost and server may start retransmission of several
packets with same payload but with different sequence numbers. Sometimes, but
not always. Then it sends same payload third time with correct payload. :/
For testing I download 500MiB file 4 times:
fetch -q http://192.168.20.12:8000/gcc11-11.3.0_1.pkg && md5 gcc11-11.3.0_1.pkg
fetch -q http://192.168.20.12:8000/gcc11-11.3.0_1.pkg && md5 gcc11-11.3.0_1.pkg
fetch -q http://192.168.20.12:8000/gcc11-11.3.0_1.pkg && md5 gcc11-11.3.0_1.pkg
fetch -q http://192.168.20.12:8000/gcc11-11.3.0_1.pkg && md5 gcc11-11.3.0_1.pkg
If all checksums are correct, kernel is good.
I've bisected it to commit:
https://github.com/freebsd/freebsd-src/commit/c21b7b55bea2cc2bf3b420c70a9018e703ed6f00
commit c21b7b55bea2cc2bf3b420c70a9018e703ed6f00
Author: Richard Scheffenegger <rscheff@FreeBSD.org>
Date: Wed Aug 31 14:49:25 2022 +0200
tcp: finish SACK loss recovery on sudden lack of SACK blocks
While a receiver should continue sending SACK blocks for the
duration of a SACK loss recovery, if for some reason the
TCP options no longer contain these SACK blocks, but we
already started maintaining the Scoreboard, keep on handling
incoming ACKs (without SACK) as belonging to the SACK recovery.
Reported by: thj
Reviewed by: tuexen, #transport
MFC after: 2 weeks
Sponsored by: NetApp, Inc.
Differential Revision: https://reviews.freebsd.org/D36046
sys/netinet/tcp_input.c | 39 ++++++++++++++++++++++-----------------
1 file changed, 22 insertions(+), 17 deletions(-)
Many thanks to Gleb and Richard!
--
You are receiving this mail because:
You are the assignee for the bug.