I upgraded my laptop from OpenSolaris 2008.05 (build 86) to build 91
using pkg image-update and I've been experiencing network related issues
since then. The problem occurs whenever I try to push any non-trivial
amount of data from my laptop to another system. Examples of
problematic operations include:
1. Sending an e-mail (any size) from Thunderbird
2. sftp of a local file to a remote system
3. NFS copy of a local file to a remote system
The initial connection seems to take place just fine, but the data
transfer stalls out almost immediately and never finishes. I see TCP
retransmissions while this is happening (I can provide example wireshark
traces directly to anyone who would like to take a look. I've tried
this on three different subnets (one of which is my home network) and
the behavior is consistent. If I boot the build 86 BE then everything
works fine. Does this ring any bells around known issues with this image?
Using a basic test case of sending unix.0 to a remote system using sftp,
here are some of the statistics that seem relevent (before and after
represent 60 seconds of time... the transfer never completes):
Before:
# netstat -s -P tcp
....
tcpRetransSegs = 42 tcpRetransBytes = 52920
....
tcpInDupAck = 58 tcpInAckUnsent = 0
....
tcpInDupSegs = 24 tcpInDupBytes = 2888
....
tcpRttUpdate = 780 tcpTimRetrans = 41
# kstat -m e1000g -n statistics -s "Tx Pkt Over Size"
module: e1000g instance: 0
name: statistics class: net
Tx Pkt Over Size 60
After:
# netstat -s -P tcp
....
tcpRetransSegs = 46 tcpRetransBytes = 58760
....
tcpInDupAck = 59 tcpInAckUnsent = 0
....
tcpInDupSegs = 25 tcpInDupBytes = 2952
....
tcpRttUpdate = 792 tcpTimRetrans = 45
# kstat -m e1000g -n statistics -s "Tx Pkt Over Size"
module: e1000g instance: 0
name: statistics class: net
Tx Pkt Over Size 68
One interesting observation is that the increase in "Tx Pkt Over Size"
is double the increase in "tcpTimRetrans". A previous test case was
similar. Any ideas? It seem like a fundamental problem in e1000g or
TCP should be breaking all over the place (not just for me) so that
makes me a suspect a mis-configuration but I didn't change any
parameters during the upgrade nor have I changed anything since.
In case it's interesting to anyone I've attached the script I used to
collect the statistics (getstats) and the complete output from the
script. Any suggestions are appreciated.
-Peter
netstat -s -P tcp
netstat -s -P ip
kstat -m e1000g -n statistics -s "Tx Pkt Over Size"
sleep 60
netstat -s -P tcp
netstat -s -P ip
kstat -m e1000g -n statistics -s "Tx Pkt Over Size"
TCP tcpRtoAlgorithm = 4 tcpRtoMin = 400
tcpRtoMax = 60000 tcpMaxConn = -1
tcpActiveOpens = 247 tcpPassiveOpens = 6
tcpAttemptFails = 185 tcpEstabResets = 5
tcpCurrEstab = 10 tcpOutSegs = 1741
tcpOutDataSegs = 828 tcpOutDataBytes =190938
tcpRetransSegs = 42 tcpRetransBytes = 52920
tcpOutAck = 991 tcpOutAckDelayed = 289
tcpOutUrg = 0 tcpOutWinUpdate = 0
tcpOutWinProbe = 0 tcpOutControl = 503
tcpOutRsts = 192 tcpOutFastRetrans = 0
tcpInSegs = 2803
tcpInAckSegs = 833 tcpInAckBytes =153567
tcpInDupAck = 58 tcpInAckUnsent = 0
tcpInInorderSegs = 2050 tcpInInorderBytes =1998170
tcpInUnorderSegs = 68 tcpInUnorderBytes = 25152
tcpInDupSegs = 24 tcpInDupBytes = 2888
tcpInPartDupSegs = 0 tcpInPartDupBytes = 0
tcpInPastWinSegs = 0 tcpInPastWinBytes = 0
tcpInWinProbe = 0 tcpInWinUpdate = 0
tcpInClosed = 3 tcpRttNoUpdate = 2
tcpRttUpdate = 780 tcpTimRetrans = 41
tcpTimRetransDrop = 3 tcpTimKeepalive = 0
tcpTimKeepaliveProbe= 0 tcpTimKeepaliveDrop = 0
tcpListenDrop = 0 tcpListenDropQ0 = 0
tcpHalfOpenDrop = 0 tcpOutSackRetrans = 0
IPv4 ipForwarding = 2 ipDefaultTTL = 255
ipInReceives = 4406 ipInHdrErrors = 0
ipInAddrErrors = 0 ipInCksumErrs = 0
ipForwDatagrams = 0 ipForwProhibits = 14
ipInUnknownProtos = 42 ipInDiscards = 0
ipInDelivers = 3317 ipOutRequests = 2048
ipOutDiscards = 0 ipOutNoRoutes = 0
ipReasmTimeout = 60 ipReasmReqds = 0
ipReasmOKs = 0 ipReasmFails = 0
ipReasmDuplicates = 0 ipReasmPartDups = 0
ipFragOKs = 0 ipFragFails = 0
ipFragCreates = 0 ipRoutingDiscards = 0
tcpInErrs = 0 udpNoPorts = 1451
udpInCksumErrs = 0 udpInOverflows = 0
rawipInOverflows = 0 ipsecInSucceeded = 0
ipsecInFailed = 0 ipInIPv6 = 0
ipOutIPv6 = 0 ipOutSwitchIPv6 = 1
module: e1000g instance: 0
name: statistics class: net
Tx Pkt Over Size 60
TCP tcpRtoAlgorithm = 4 tcpRtoMin = 400
tcpRtoMax = 60000 tcpMaxConn = -1
tcpActiveOpens = 247 tcpPassiveOpens = 6
tcpAttemptFails = 185 tcpEstabResets = 5
tcpCurrEstab = 10 tcpOutSegs = 1761
tcpOutDataSegs = 844 tcpOutDataBytes =197288
tcpRetransSegs = 46 tcpRetransBytes = 58760
tcpOutAck = 995 tcpOutAckDelayed = 292
tcpOutUrg = 0 tcpOutWinUpdate = 0
tcpOutWinProbe = 0 tcpOutControl = 503
tcpOutRsts = 192 tcpOutFastRetrans = 0
tcpInSegs = 2819
tcpInAckSegs = 845 tcpInAckBytes =154077
tcpInDupAck = 59 tcpInAckUnsent = 0
tcpInInorderSegs = 2057 tcpInInorderBytes =1998748
tcpInUnorderSegs = 68 tcpInUnorderBytes = 25152
tcpInDupSegs = 25 tcpInDupBytes = 2952
tcpInPartDupSegs = 0 tcpInPartDupBytes = 0
tcpInPastWinSegs = 0 tcpInPastWinBytes = 0
tcpInWinProbe = 0 tcpInWinUpdate = 0
tcpInClosed = 3 tcpRttNoUpdate = 2
tcpRttUpdate = 792 tcpTimRetrans = 45
tcpTimRetransDrop = 3 tcpTimKeepalive = 0
tcpTimKeepaliveProbe= 0 tcpTimKeepaliveDrop = 0
tcpListenDrop = 0 tcpListenDropQ0 = 0
tcpHalfOpenDrop = 0 tcpOutSackRetrans = 0
IPv4 ipForwarding = 2 ipDefaultTTL = 255
ipInReceives = 4447 ipInHdrErrors = 0
ipInAddrErrors = 0 ipInCksumErrs = 0
ipForwDatagrams = 0 ipForwProhibits = 14
ipInUnknownProtos = 43 ipInDiscards = 0
ipInDelivers = 3335 ipOutRequests = 2072
ipOutDiscards = 0 ipOutNoRoutes = 0
ipReasmTimeout = 60 ipReasmReqds = 0
ipReasmOKs = 0 ipReasmFails = 0
ipReasmDuplicates = 0 ipReasmPartDups = 0
ipFragOKs = 0 ipFragFails = 0
ipFragCreates = 0 ipRoutingDiscards = 0
tcpInErrs = 0 udpNoPorts = 1473
udpInCksumErrs = 0 udpInOverflows = 0
rawipInOverflows = 0 ipsecInSucceeded = 0
ipsecInFailed = 0 ipInIPv6 = 0
ipOutIPv6 = 0 ipOutSwitchIPv6 = 1
module: e1000g instance: 0
name: statistics class: net
Tx Pkt Over Size 68
_______________________________________________
networking-discuss mailing list
networking-discuss@opensolaris.org