NFS write corruption on 8.0-RELEASE

Dmitry Marakasov amdmi3 at amdmi3.ru
Wed Feb 10 18:05:45 UTC 2010


Hi!

I think I've reported that before, the I thought it's been fixed,
however I still get data corruptions when writing on NFS volumes.
Now I wonder - is nobody really using NFS, or do I have that much
of uncommon setup, or this is some kind of local problem?

Client: 8.0-RELEASE i386
Server: 8.0-RELEASE amd64

mount options:
nfs rw,nosuid,noexec,nfsv3,intr,soft,tcp,bg,nolockd

Server has ZFS, but the same thing happens when sharing UFS placed on
md(4).

I've prepared a special 1GB file to determine the details of corruption:
it's filled with 32-bit numbers each equal to it's own offset in the
file. That is, like that:

00000000  00 00 00 00 04 00 00 00  08 00 00 00 0c 00 00 00  |................|
00000010  10 00 00 00 14 00 00 00  18 00 00 00 1c 00 00 00  |................|
00000020  20 00 00 00 24 00 00 00  28 00 00 00 2c 00 00 00  | ...$...(...,...|
00000030  30 00 00 00 34 00 00 00  38 00 00 00 3c 00 00 00  |0...4...8...<...|

I've copied that file over NFS from client to server around 50
times, and got 3 corruptions on 8th, 28th and 36th copies.

Case1: single currupted block 3779CF88-3779FFFF (12408 bytes).
Data in block is shifted 68 bytes up, loosing first 68 bytes are
filling last 68 bytes with garbage. Interestingly, among that garbage
is my hostname.

Case2: single currupted block 2615CFA0-2615FFFF (12384 bytes).
Data is shifted by 44 bytes in the same way.

Case3: single currepted block 3AA947A8-3AA97FFF (14424 bytes).
Data is shifted by 36 bytes in the same way.

Any ideas?

PS. Diffs of corrupted blocks in a text format are here:
http://people.freebsd.org/~amdmi3/diff.1.txt
http://people.freebsd.org/~amdmi3/diff.2.txt
http://people.freebsd.org/~amdmi3/diff.3.txt

-- 
Dmitry Marakasov   .   55B5 0596 FF1E 8D84 5F56  9510 D35A 80DD F9D2 F77D
amdmi3 at amdmi3.ru  ..:  jabber: amdmi3 at jabber.ru    http://www.amdmi3.ru


More information about the freebsd-stable mailing list