Subject: RE: [nfsv4] NFS4ERR_RESOURCE

From: Mike Eisler <[email-masked]>
Date: Mon, 05 Jan 2004 16:10:06 -0800

> How do clients deal with the above ?
 >
 > Is this is a common error status when the server
 > cannot buffer the entire response ? for eg.

I don't know how common it is, but I suspect if
you fired, say a COMPOUD containing 100 32Kbyte READ
operations, you'd get _RESOURCE back (or a server panic,
or some other, likely inappropriate, error).

 > if there are 20 requests in a COMPOUND request, and
 > the 10th operation is a READ, is it OK for the server
 > to process only the first 10 operations (because of
 > buffering limitations), even though is nothing wrong
 > on the subsequent operations and return
 > NFS4ERR_RESOURCE.

yes it is ok to return _RESOURCE at appropriate
places in the COMPOUND string. By appropriate, I
mean a place that gives the client a chance to
recover. One class of
an inappropriate place would be immediately before
a GETFH operation. E.g.

	PUTFH, OPEN, GETFH -->
	<-- OK, OK, _RESOURCE

would be very bad, because the server has created open state,
and the client has no way to get the file handle. Any server that returns
_RESOURCE on a GETFH that follows
an operation that changes the current fh is an anti-social
server.  Conversely, any client that fails
to follow up an operation that changes with
current file handle with GETFH is looking for trouble.
E.g., do:

	PUTFH, OPEN, GETFH, READ
and not

	PUTFH, OPEN, READ, GETFH
If the client does the latter, and gets _RESOURCE on the READ,
then it deserves the conundrum of creating state with no way to
cancel it, save via SETCLIENTID.

A question to client implementors is whether they handle
_RESOURCE?

_______________________________________________
nfsv4 mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/nfsv4

---

From: Eric Kustarz <[email-masked]>
Date: Mon, 05 Jan 2004 16:39:27 -0800

> A question to client implementors is whether they handle

The Solaris client currently handles this error (will attempt failover 
if replicas specified at mount time, otherwise delay and retry).  We 
also don't bump the seqid as RESOURCE is one of the seven non-bumpers.

eric