Date: Wed, 14 Nov 2007 23:45:50 -0800 From: "Kip Macy" <kip.macy@gmail.com> To: "Adam McDougall" <mcdouga9@egr.msu.edu> Cc: tss@iki.fi, freebsd-current@freebsd.org Subject: Re: link() not increasing link count on NFS server Message-ID: <b1fa29170711142345l2cdb0f7dpd03d253599e0151e@mail.gmail.com> In-Reply-To: <20071115074247.GQ37473@egr.msu.edu> References: <20071115074247.GQ37473@egr.msu.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
On Nov 14, 2007 11:42 PM, Adam McDougall <mcdouga9@egr.msu.edu> wrote: > Hi, lately I've been trying to work out some NFS multiple access issues relating > to the Dovecot IMAP server software. One symptom seems to be an unusual behavior > of FreeBSD NFS clients that I cannot reproduce with Linux or Solaris NFS clients. > Basically, Timo (cc'ed) came up with a small test case that seems to indicate > sometimes a link() call can succeed while the link count of the file will not > increase. If this is ran on two FreeBSD clients from the same NFS directory, you > will occasionally see "link() succeeded, but link count=1". I've tried both a > Netapp and a FreeBSD NFS server. I've tried FreeBSD 7_RELENG clients as well as > FreeBSD 6.2-stable from this summer. I've ran it on 32bit and 64bit clients. > I've turned rpc.lockd on and off, tried tcp vs. udp mounts, nothing so far seems > to make a difference, except perhaps FreeBSD 7.0 seems to produce the error less > often. If one of the processes is ran on a non-FreeBSD NFS cliemt, only the > FreeBSD NFS client gives the link error. Anyone have any input? Thanks. Is this with both TCP and UDP clients? We're planning on making the default TCP. -Kip > > > How to reproduce (local binary is fine too, may be required if different arch): > ------------------ > > cp locktest.c /nfsserver > cd /nfsserver > gcc locktest.c -o locktest -Wall -g > > On host 1: > cd /nfsserver > ./locktest temp1 > > On host 2: (easiest to reproduce when starting just a few seconds after 1) > cd /nfsserver > ./locktest temp2 > > > Typical output (timing may vary): > ---------------------------------- > > Host 1: > > > /tmp/locktest temp1 > 5 successes > 15 successes > unlink(): No such file or directory (not a problem indication, happens > 19 successes when second process starts) > 20 successes > link() succeeded, but link count=1 > 20 successes > link() succeeded, but link count=1 > 20 successes > 33 successes > 33 successes > link() succeeded, but link count=1 > 33 successes > 45 successes > link() succeeded, but link count=1 > 45 successes > 45 successes > link() succeeded, but link count=1 > ^C > > Host 2: > > > /tmp/locktest temp2 > 6 successes > 15 successes > 25 successes > 38 successes > 39 successes > 50 successes > 59 successes > link() succeeded, but link count=1 > 59 successes > 69 successes > 79 successes > 91 successes > 99 successes > 109 successes > ^C > > > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org" >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?b1fa29170711142345l2cdb0f7dpd03d253599e0151e>