Subject: [nfsv4] Clarification of 9.4.5

From: [email-masked]
Date: Thu, 17 Jul 2003 12:20:16 -0400 (EDT)

I know, it's me again...

I'm into the world of Delegations now, and am stuck on the meaning of
the following in 9.4.5:

"When the callback path is down, the server MUST NOT revoke the
 delegation if one of the following occurs:"
- Then it lists two cases, the second of which basically states the client
  hasn't renewed a lease recently.

So, if it cannot revoke the delegation and the client isn't talking to it,
what does this mean? Does it actually mean "...delegation UNLESS one of the
following occurs:"?

Or put another way, does it mean it cannot revoke the delegation until
one of the two cases has occurred?

Thanks in advance for any help, rick

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

---

From: Spencer Shepler <[email-masked]>
Date: Thu, 17 Jul 2003 15:27:44 -0500

> Thanks in advance for any help, rick

The callback path is down and the server would like to recall a
delegation.  The only method the server has for notifying the client
of the situation where the callback path is non-functional is to
return an error on RENEW.  The error is NFS4ERR_CB_PATH_DOWN and you
will note that the only operation that returns this error is RENEW.

This scenario, callback path down - how to notify the client, was
raised late in the process of protocol development.  To minimize the
impact on the protocol definition at that point, we chose to add this
error to RENEW and then the "special handling" as defined in section
9.4.5.

So a way to rephrase this is that once the server has determined that
the callback path is down, or otherwise marked it as such, the server
must return the NFS4ERR_CB_PATH_DOWN error on a RENEW operation.  Once
the server has returned the error it must wait some reasonable period
of time (one lease period) before revoking the delegations that have
not yet been returned.

If the client does not send a RENEW, then the server must wait at
least one lease period before revoking the delegations.

This means that the client MUST, if it holds a delegation, use the
RENEW operation on the frequency of no less than once per lease period
so the server can return this "special" error.  This is mentioned in
the implementation section of the RENEW operation.

So the upshot of this is that the server must notify the client of the
callback path failure before blowing away the delegations.

-- 
Spencer