Subject: delegation question

From: "William A.(Andy) Adamson" <[email-masked]>
Date: Fri, 09 Aug 2002 12:53:36 -0400

the scenerio is as follows:

client1 OPENS a file for WRITE. server grants a delegation. client1 writes to 
the file never contacting the server, except via RENEW. the server wants to 
recall the delegation, and finds out that the client1 call back path is down. 
after the grace period (lease time?) the server gives up on client1 and grants 
another client WRITE privileges.

client1 then finishes, and CLOSES the file sending the close to the server, 
only to find that the delegation_stateid is no longer valid. client1, being a 
good client, then OPENS the file once more, checks the change attribute, and 
to it's dismay, finds that another client has written the file, and so must 
throw away its written data.

this is bad! how bad do other developers think this is?

could add an error, or perhaps even a stateid to the RENEW reply to indicate 
to the client that the callback path is down, and that the server is about to 
recall the delgation? this would allow the client to flush written data back 
to the server within the grace period...

-->Andy

---

From: Jim Rees <[email-masked]>
Date: Fri, 09 Aug 2002 13:11:54 -0400

My initial reaction is that if the server can't contact the client via the
callback path, it should stop allowing lease renewals.  The reasoning here
is that the network has gone down in some sense.

But the spec currently does not allow this.  The network could develop some
strange pathological disease that blocks everything except RENEW, and the
server would still be required to renew.  Maybe we should change this.

The good news is that the client will detect the problem when it tries to
close the file, so at least it knows there is a problem.

---

From: Jim Rees <[email-masked]>
Date: Fri, 09 Aug 2002 14:58:15 -0400

That sounds good, except that a busy client may never issue a RENEW, because
it is issuing other stateid mutating ops before the lease expires.  However,
I can't think of a good way to solve this problem, and your solution is
better than what we have now.