netdev
[Top] [All Lists]

Deadlock problem with TCP v6?

To: netdev@xxxxxxxxxxx
Subject: Deadlock problem with TCP v6?
From: Pekka Savola <pekkas@xxxxxxxxxx>
Date: Tue, 12 Mar 2002 21:08:37 +0200 (EET)
Sender: owner-netdev@xxxxxxxxxxx
Hello,

There appears to be some weird problem with TCP over IPv6 with 2.4.18.  
At least with RHL72 kernel (2.4.9-xx), this does not happen.

The topology is such:

2001:708:10:10:250:4ff:fe6a:db55 - Linux client
2001:708:10:f::c1a6:45 - FreeBSD 4.5 TCP relay (using IPv6-to-IPv4 relay)

The test is done with basically 'lynx [http://[2001:708:10:f::c1a6:45]', 
the same also happens if telnetting to port 80 and issuing 'GET / 
HTTP/1.0'

The problem is that FreeBSD never seems to be able to send the data it
receives from IPv4 to the Linux client: netstat -an shows the data is kept
in SendQ of the connection, which is CLOSING state.  Linux client never
sees the data.

Works:

- Linux 2.4.9 (at least) works (the same system)

- Linux 2.4.9, 2.4.12, 2.4.18 and other versions do work from some other
topological locations: it seems that this happens only if the latency
between the boxes is very low.

Perhaps some TCP specilist can shed some light on this?

17:12:51.254612 2001:708:10:10:250:4ff:fe6a:db55.1046 > 
2001:708:10:f::c1a6:45.http: S [tcp sum ok] 3514706145:3514706145(0) win 5760 
<mss 1440,sackOK,timestamp 100174 0,nop,wscale 0> (len 40, hlim 64)
17:12:51.259395 2001:708:10:f::c1a6:45.http > 
2001:708:10:10:250:4ff:fe6a:db55.1046: S [tcp sum ok] 2663223199:2663223199(0) 
ack 3514706146 win 65535 <mss 1440,nop,wscale 1,nop,nop,timestamp 218472648 
100174> (len 40, hlim 61)
17:12:51.259457 2001:708:10:10:250:4ff:fe6a:db55.1046 > 
2001:708:10:f::c1a6:45.http: . [tcp sum ok] 1:1(0) ack 1 win 5760 
<nop,nop,timestamp 100175 218472648> (len 32, hlim 64)
17:12:51.260802 2001:708:10:10:250:4ff:fe6a:db55.1046 > 
2001:708:10:f::c1a6:45.http: P 1:537(536) ack 1 win 5760 <nop,nop,timestamp 
100175 218472648> (len 568, hlim 64)
17:12:51.468662 2001:708:10:10:250:4ff:fe6a:db55.1046 > 
2001:708:10:f::c1a6:45.http: P 1:537(536) ack 1 win 5760 <nop,nop,timestamp 
100196 218472648> (len 568, hlim 64)
17:12:51.474158 2001:708:10:f::c1a6:45.http > 
2001:708:10:10:250:4ff:fe6a:db55.1046: . [tcp sum ok] 2857:2857(0) ack 537 win 
32844 <nop,nop,timestamp 218472670 100196> [flowlabel 0x60695] (len 32, hlim 61)

Any thoughts?  Does this appear to be a FreeBSD or Linux problem?  (I'd be
tempted to say Linux, because it works in some versions but not others.)

-- 
Pekka Savola                 "Tell me of difficulties surmounted,
Netcore Oy                   not those you stumble over and fall"
Systems. Networks. Security.  -- Robert Jordan: A Crown of Swords


<Prev in Thread] Current Thread [Next in Thread>