Subject: kern/14220: NFS writes totally broken
To: None <gnats-bugs@gnats.netbsd.org>
From: Lennart Augustsson <augustss@augustsson.net>
List: netbsd-bugs
Date: 10/10/2001 23:34:16
>Number:         14220
>Category:       kern
>Synopsis:       NFS writes totally broken
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Oct 10 20:35:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Lennart Augustsson
>Release:        NetBSD-current 2001-10-09
>Organization:
>Environment:
System: NetBSD hobbes 1.5Y NetBSD 1.5Y (HOBBES) #36: Tue Oct 9 23:16:50 EDT 2001 augustss@hobbes:/usr/src/sys/arch/i386/compile/HOBBES i386
Architecture: i386
Machine: i386
>Description:
	I'm running an NFS server on NetBSD/i386 and an NFS
	client on NetBSD/macppc (iMac).  When writing files from the
	client they are very often truncated.
	Here is a typical scenario:
terc# ll
total 7
-rw-r--r--  1 root  wheel  6570 Oct 11 03:28 aaa
terc# dd if=aaa of=bbb bs=8192
0+1 records in
0+1 records out
6570 bytes transferred in 0.001 secs (6570000 bytes/sec)
terc# ll
total 11
-rw-r--r--  1 root  wheel  6570 Oct 11 03:28 aaa
-rw-r--r--  1 root  wheel  4096 Oct 11 03:28 bbb
terc# dd if=aaa of=bbb bs=4096
1+1 records in
1+1 records out
6570 bytes transferred in 0.001 secs (6570000 bytes/sec)
terc# ll
total 14
-rw-r--r--  1 root  wheel  6570 Oct 11 03:28 aaa
-rw-r--r--  1 root  wheel  6570 Oct 11 03:28 bbb

	Looking at tcpdump you can see this:
bs=8192:
23:22:22.961914 terc.1298655473 > hobbes.nfs: 1472 write [|nfs] (frag 7005:1480@0+)
23:22:22.964432 terc > hobbes: (frag 7005:1480@1480+)
23:22:22.966390 terc > hobbes: (frag 7005:1284@2960)
23:22:22.967393 hobbes.nfs > terc.1298655473: reply ok 160 write [|nfs]

bs=4096:
23:22:58.566910 terc.1298655486 > hobbes.nfs: 1472 write [|nfs] (frag 7031:1480@0+)
23:22:58.568891 terc > hobbes: (frag 7031:1480@1480+)
23:22:58.570898 terc > hobbes: (frag 7031:1480@2960+)
23:22:58.572898 terc > hobbes: (frag 7031:1480@4440+)
23:22:58.573858 terc > hobbes: (frag 7031:800@5920)
23:22:58.575015 hobbes.nfs > terc.1298655486: reply ok 160 write [|nfs]

	NFS writes work fine with a 1.5.2 kernel.

>How-To-Repeat:
	See above.
>Fix:
	I'm clueless.
>Release-Note:
>Audit-Trail:
>Unformatted: