Date: Thu, 28 May 2009 14:31:57 -0400 (EDT) From: Mike Andrews <mandrews@fark.com> To: FreeBSD-gnats-submit@FreeBSD.org Subject: kern/135039: mkstemp() fails over NFS when server uses ZFS (7-stable only) Message-ID: <20090528183157.3AD78B5E5@bourbon.fark.com> Resent-Message-ID: <200905281900.n4SJ06Lo025447@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 135039 >Category: kern >Synopsis: mkstemp() fails over NFS when server uses ZFS (7-stable only) >Confidential: no >Severity: critical >Priority: high >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Thu May 28 19:00:06 UTC 2009 >Closed-Date: >Last-Modified: >Originator: Mike Andrews >Release: FreeBSD 7.2-STABLE amd64 >Organization: Fark, Inc >Environment: System: FreeBSD bourbon.fark.com 7.2-STABLE FreeBSD 7.2-STABLE #11: Mon May 25 19:10:00 EDT 2009 mandrews@vodka.int.fark.com:/usr/obj/usr/src/sys/FARK64 amd64 >Description: After the recent import of ZFS v13 into 7-STABLE, an mkstemp() call from an NFS client to a ZFS-backed NFS server will fail: the syscall returns EIO and the server will have created a 0-byte file with 000 permissions. This breaks not just mktemp but also mv, tar, rsync... >How-To-Repeat: With both client/server running today's 7-STABLE: # dd if=/dev/random of=testfile bs=10000 count=1 >/dev/null 2>&1 # mount another-72-stable-system:/zfs /mnt # cp testfile /mnt # mv testfile /mnt mv: /mnt/testfile: Input/output error # mktemp /mnt/testfile2 mktemp: mkstemp failed on /mnt/testfile2: Input/output error # tar cf - testfile | (cd /mnt ; tar xpvf -) x testfile: Can't create 'testfile': Input/output error tar: Error exit delayed from previous errors. # rsync testfile /mnt rsync: mkstemp "/mnt/.testfile.0ycr51" failed: Input/output error (5) rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1039) [sender=3.0.6] # ls -l /mnt/testfile /mnt/.testfile* ---------- 1 root wheel 0 May 28 14:16 /mnt/.testfile.0ycr51 ---------- 1 root wheel 0 May 28 14:16 /mnt/testfile ZFS on-disk format was upgraded to v13, unknown yet whether leaving it at v6 would have made a difference, but I suspect not :) Everything works as expected if the remote filesystem is UFS2. >Fix: Kip Macy said there's a flags check that is too strict, in email message <3c1674c90905280025i17039257l573838d33d8493fd@mail.gmail.com> Otherwise, use cp and rm instead of mv, or use scp instead of NFS, or use UFS2 on the server >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090528183157.3AD78B5E5>