Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 Feb 2012 19:21:25 -0500 (EST)
From:      Rick Macklem <rmacklem@uoguelph.ca>
To:        Garrett Wollman <wollman@bimajority.org>
Cc:        freebsd-fs@freebsd.org, rmacklem@freebsd.org
Subject:   Re: Under what circumstances does the new NFS client return EAGAIN?
Message-ID:  <148631084.149332.1330561285089.JavaMail.root@erie.cs.uoguelph.ca>
In-Reply-To: <20302.29963.529821.258448@hergotha.csail.mit.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
Garrett Wollman wrote:
> I'm testing out a new file server, and trying to rsync files from
> a proprietary NAS to the box I'm testing. It's running the new NFS
> code and 9.0. rsync frequently and repeatably errors out with
> something like this:
> 
> rsync: read errors mapping "[source file name]": Resource temporarily
> unavailable (35)
> 
> cp(1), on the other hand, seems just fine with the same source files.
> 
> Any ideas what causes this?
> 
EWOULDBLOCK is most likely being returned by the kernel rpc, when a
wait for a reply has timed out. With hard mounts, this would normally
not be returned to userland (at least that's my understanding of the
krpc code, which I didn't write), but would result in a new
socket/connection being created for a retry of the RPC.

The other cases are things like a non-blocking I/O or a non-blocking
byte range lock request, which I doubt rsync is doing, but I don't know
anything about rsync's implementation.

If you are using the "soft" or "intr" mount options, I'd suggest you
get rid of them (technically "intr" should result in EINTR, but I wouldn't
be surprised if an EWOULDBLOCK could pop out, as well). Also, you
didn't mention whether you were using UDP or TCP mounts, although the
above comments should apply to both.

You might also want to capture packets and look at them in wireshark,
to make sure the EWOULDBLOCK isn't coming from the proprietary NAS server.

rick

> -GAWollman
> _______________________________________________
> freebsd-fs@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-fs
> To unsubscribe, send any mail to "freebsd-fs-unsubscribe@freebsd.org"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?148631084.149332.1330561285089.JavaMail.root>