FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Debian > Debian Kernel

 
 
LinkBack Thread Tools
 
Old 11-27-2008, 10:10 PM
Moritz Muehlenhoff
 
Default Bug#375149: Linux kernel IPv6 : random TCP connection failure

On Fri, Jun 23, 2006 at 09:16:44PM +0200, Benoit Branciard wrote:
> Package: linux-source-2.6.16
> Version: 2.6.16-2
>
> When a great number of IPv6 TCP connections are initiated from the Linux
> machine at high rate, some of them get stalled in SYN_SENT state and
> eventually time out after tcp_syn_retries (about 3 minutes).
>
>
> The remote server does NOT seem to see the connection at all (no
> SYN_RECV report with netstat).
>
> This behaviour was noticed initially using LDAP queries. Further
> investigations reported the same problem with SMTP requests, but NOT
> with HTTP (maybe related to the short-living TIME_WAIT state of HTTP
> connections ?).
> The failure rate is about 1-2 to 5000 on a busy machine (for example one
> hosting a web server), and harder to obtain on a quiet one.
>
> How to reproduce :
>
> - have a dual-stack LDAP or SMTP server ready, on a IPv6-enabled network
> (let's call it myserver)
>
> - on the Linux client to be tested, launch a loop of quick TCP
> connections to myserver :
>
> --> example 1 : loop of 5000 anonymous LDAP searches from a bash shell :
>
> $ i=0; while [ $i -lt 5000 ] ; do ldapsearch -H ldap://myserver -x -b
> dc=mydomain,dc=myroot '(uid=someuid)' > /dev/null ; i=$((i+1)) ; [
> $((i%100)) -eq 0 ] && echo $i ; done
>
> --> example 2 : loop of 5000 SMTP connexions from a bash shell (uses the
> echoping package) :
>
> $ i=0; while [ $i -lt 5000 ] ; do echoping -6 -S myserver >/dev/null ;
> i=$((i+1)) ; [ $((i%100)) -eq 0 ] && echo $i ; done
>
> Both examples should print the query number every hundred connections.
> If a connection gets stalled, the query count hangs, and a netstat
> command (in another shell) should display the SYN_SENT stalled connection :
>
> tcp6 0 0 myclient.mydomain:51930 myserver.mydomain:ldap TIME_WAIT
> (.. a bunch of other TIME_WAIT closing connexions ..)
> tcp6 0 1 myclient.mydomain:51940 myserver.mydomain:ldap SYN_SENT
>
> The number of TIME_WAIT connections in our case is about a few hundreds,
> so the tcp_max_tw_buckets value should not be an issue.
>
> The same experiments have NOT shown any stalling connections when using
> IPv4 in the same conditions (either by explicitly specifying the IPv4
> address of myserver, or by means of the "-4" option of echoping).
>
>
> We are using Debian GNU/Linux 3.1, libc6 2.3.2.ds1-22sarge3, and a
> compiled linux-source-2.6.16 (2.6.16-2) kernel with the stock
> 2.6.16-1-686-smp (or amd64-k8) unmodified config file.
>
> Same results have been achieved using several physical Debian client
> machines with similar config and different ethernet adapters (e1000 and
> tg3), against several LDAP or SMTP servers, and with various ethernet
> switches.
>
> Also noted on a Mandriva Linux 2006.0 client with 2.6.12-18mdk kernel
> and glibc-2.3.5-5mdk.
>
> So this sounds like a general bug in the Linux 2.6 IPv6 TCP stack.

Does this error still occur with more recent kernel versions?

Cheers,
Moritz



--
To UNSUBSCRIBE, email to debian-kernel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
 

Thread Tools




All times are GMT. The time now is 08:47 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org