Date: Sun, 04 Nov 2012 12:21:31 +0100 From: Dimitry Andric <dimitry@andric.com> To: Manfred Antar <null@pozo.com> Cc: Adrian Chadd <adrian@freebsd.org>, freebsd-current@freebsd.org, Andre Oppermann <andre@FreeBSD.org> Subject: Re: weird network problems on current since 10/28/2012 Message-ID: <50964FBB.4010600@andric.com> In-Reply-To: <201211040113.qA41DfLn001577@pozo.com> References: <201211031740.qA3HeqVX001622@pozo.com> <CAJ-VmomAR8N8ovhC7La3ttG=7Qu_%2BVwD30tPxFBpzC37eg9CHA@mail.gmail.com> <201211040113.qA41DfLn001577@pozo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2012-11-04 02:13, Manfred Antar wrote: > At 03:29 PM 11/3/2012, Adrian Chadd wrote: >> On 3 November 2012 10:40, Manfred Antar <null@pozo.com> wrote: >>> i have problem connecting to freebsd box on local network since last sunday. >>> the last kernel that works: >>> FreeBSD 10.0-CURRENT #0: Sun Oct 28 12:14:38 PDT 2012 >>> anything after that, sometimes i can connect, other times just hangs. >>> any network connection hangs ===== pop httpd ssh etc etc. >>> anyone have any ideas ? >>> i can checkout different sources and see if i can locate the changes that cause this. >> >> Please do! ... > Here is what I found doing : > setenv CVSROOT /usr/home/ncvs > > cvs co -D"October 28, 2012 12:14:38 PDT" sys > > A kernel from that time works fine. > > doing: > > cvs up -D"October 28, 2012 13:14:38 PDT" sys 1 hour later > the following files were changed: > sys/netinet/tcp_input.c > sys/netinet/tcp_timer.c > sys/netinet/tcp_var.h > > Building a kernel from these new files is when the problem starts. So, your problems seem to have been introduced by this commit by Andre: http://svn.freebsd.org/changeset/base/242266 Increase the initial CWND to 10 segments as defined in IETF TCPM draft-ietf-tcpm-initcwnd-05. It explains why the increased initial window improves the overall performance of many web services without risking congestion collapse. As long as it remains a draft it is placed under a sysctl marking it as experimental: net.inet.tcp.experimental.initcwnd10 = 1 When it becomes an official RFC soon the sysctl will be changed to the RFC number and moved to net.inet.tcp. This implementation differs from the RFC draft in that it is a bit more conservative in the case of packet loss on SYN or SYN|ACK because we haven't reduced the default RTO to 1 second yet. Also the restart window isn't yet increased as allowed. Both will be adjusted with upcoming changes. Is is enabled by default. In Linux it is enabled since kernel 3.0. After the commit, there was a small discussion thread on svn-src-head@ about the possible problems with the approach. Maybe you are experiencing those? As the commit message says, you should be able to turn the feature off using: sysctl net.inet.tcp.experimental.initcwnd10=0 Can you please try that, and see if the problems go away?
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?50964FBB.4010600>