Skip site navigation (1)Skip section navigation (2)
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>