amd64/112529: NFS over TCP under load hangs with "impossible packet length"

Seraphi seraphi.lord at gmail.com
Tue May 8 19:40:04 UTC 2007


>Number:         112529
>Category:       amd64
>Synopsis:       NFS over TCP under load hangs with "impossible packet length"
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-amd64
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue May 08 19:40:04 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator:     Seraphi
>Release:        6.2-RELEASE-p4
>Organization:
>Environment:
FreeBSD nfsclient05.domain.com 6.2-RELEASE-p4 FreeBSD 6.2-RELEASE-p4 #0: Tue May  8 13:59:19 EDT 2007     admin at nfsclient05.domain.com:/usr/obj/usr/src/sys/MYKERN_62_05042007  amd64
>Description:
NFS over UDP will hang under load and throw the following errors to syslog:
May  8 14:36:55 nfsclient05 kernel: impossible packet length (13050202) from nfs server 192.168.101.12:/store22
May  8 14:36:56 nfsclient05 kernel: impossible packet length (1669907873) from nfs server 192.168.101.12:/store22
May  8 14:37:01 nfsclient05 kernel: impossible packet length (46381) from nfs server 192.168.101.12:/store22

I have tried many mount options, but here is one set that will have this problem:
192.168.101.12:/store22       /s22           nfs     ro,-i,-b,-3,-T,-r=16384,-w=16384 0 0

To get the error to occur, I simply copy a multi-gig file from NFS to a local drive. It happens very frequently.  I have only tried this on gigabit networks.

The error goes away if I use UDP, which is what I am using until this is fixed.

I have tried this on FreeBSD 6.1 as well and had the same problem. I have also tried a different NFS server running a different OS on a different network with a different configuration on different hardware. It did not help. I have tried updating with freebsd-update but the status is unchanged.

>How-To-Repeat:
Put an NFS client and server on a gigabit network. Mount the server using TCP:
192.168.101.12:/store22       /s22           nfs     ro,-i,-b,-3,-T,-r=16384,-w=16384 0 0

Copy a large file (1GB+) from the NFS mount to a local drive. Do this a couple of times, then check /var/log/messages
>Fix:
Use UDP:
192.168.101.12:/store22       /s22           nfs     ro,-i,-b,-3,-U,-r=16384,-w=16384 0 0
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-amd64 mailing list