TCP Reassembly Issues

Lawrence Stewart lstewart at freebsd.org
Sat Nov 26 05:23:14 UTC 2011


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


More information about the freebsd-stable mailing list