TCP Reassembly Issues

Kris Bauer kristoph.bauer at gmail.com
Sat Nov 26 06:49:25 UTC 2011


On Fri, Nov 25, 2011 at 11:23 PM, Lawrence Stewart <lstewart at freebsd.org>wrote:

> On 11/25/11 13:01, Lawrence Stewart wrote:
>
>> On 11/24/11 18:02, Kris Bauer wrote:
>>
>>> Hello,
>>>
>>> I am currently experiencing an issue with FreeBSD 9.0-RC2 r227852
>>> where the
>>> net.inet.tcp.reass.curesegments value is constantly increasing (and not
>>> descreasing when there is nominal traffic with the box). It is causing
>>> tcp
>>> slowdowns as described with kern/155407:
>>>
>>> Exhausted net.inet.tcp.reass.maxsegments block recovering tcp session
>>> (for
>>> this socket and any other socket waiting for retransmited packets). After
>>> exhausted net.inet.tcp.reass.maxsegments allocation new entry in
>>> tcp_reass
>>> failed (for this socket and any other socket waiting for retransmited
>>> packets).
>>>
>>> I have increased the reass.maxsegments value to 16384 to temporarily
>>> avoid
>>> the problem, but the cursegments number keeps rising and it seems it will
>>> occur again.
>>>
>>> Is this an issue that anyone else has seen? I can provide more
>>> information
>>> if need be.
>>>
>>
>> Thanks Kris, Raul and Stefan for the reports, I'll look into this.
>>
>
> I think I've got it - a stupid 1 line logic bug. My apologies for missing
> it when I reviewed the patch which introduced the bug (patch was committed
> to head as r226113, MFCed to stable/9 as r226228).
>
> Due to some miscommunication, the initial patch was committed to and MFCed
> from head much later than it should have been in the 9.0 release cycle and
> instead of being included in the BETAs, didn't make it in until 9.0-RC1 I
> believe i.e. only RC1 and RC2 should be experiencing the issue.
>
> Could those who have reported the bug and are able to recompile their
> kernel to test a patch please try the following and report back to the list:
>
>
> http://people.freebsd.org/~lstewart/patches/misctcp/tcp_reass_plugzoneleak_10.x.r227986.patch
>
> The patch is against head r227986 but will apply and work correctly for
> 9.0 as well.
>
> Cheers,
> Lawrence
>

I have patched, recompiled, and rebooted.  net.inet.tcp.reass.cursegments
is no longer incrementing, and connectivity is holding steady.  If anything
changes over the next couple of hours, I'll be sure to report it; but all
preliminary signs of the problem are gone.

Thanks for all the help!
Kris


More information about the freebsd-stable mailing list