Subject: [nfsv4] CLIENTID race condition during server GRACE.

From: Stevan Steve Allen <[email-masked]>
Date: Mon, 17 Jan 2005 13:02:50 -0800

Comments?

RFC section 8.1.1 discusses ways to generate a unique CLIENT ID.
SETCLIENTID discusses the use of credentials to detect a conflicting CLIENT
ID when a client lease is active.  If the NFS server restarts, the
credential relationship is lost.  The resulting server GRACE period looks
to provide a race condition between clients using the same CLIENT ID.

For added data integrity, we were discussing adding additional checks in
the server to limit a SETCLIENTID into the previously active client.  i.e.
harden domain names of stateful hosts and have SETCLIENTID compare HOST
names during grace.  Return NFSERR_CLID_INUSE for host name mismatch.  This
does not address a CLIENT ID race between clients on the same host (which
seems to be a buggy client).

Thanks,
Stevan C. Allen

z/NFS Development: 5600 Cottle Rd. San Jose CA. 95193

Add the following important questions when deciding between designs:
   1. Which design can be clearly documented and understood?
   2. Which design would you prefer to debug?

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

---

From: "J. Bruce Fields" <[email-masked]>
Date: Mon, 17 Jan 2005 16:29:09 -0500

On Mon, Jan 17, 2005 at 01:02:50PM -0800, Stevan Steve Allen wrote:
> credential relationship is lost.

Can't the server store the principal that did the setclientid in stable
storage?

--b.

---

From: Stevan Steve Allen <[email-masked]>
Date: Mon, 17 Jan 2005 15:19:52 -0800

- On Mon, Jan 17, 2005 at 01:02:50PM -0800, Stevan Steve Allen wrote:
-> RFC section 8.1.1 discusses ways to generate a unique CLIENT ID.
-> SETCLIENTID discusses the use of credentials to detect a conflicting
CLIENT
-> ID when a client lease is active.  If the NFS server restarts, the
-> credential relationship is lost.

On Mon, Jan 17, 2005, Bruce wrote:
-Can't the server store the principal that did the setclientid in stable
-storage?
-b.
Not in our current server design. I first wanted to confirm the protocol
does not address this issue and what, if anything, other platforms are
doing or decided on regarding the race condition.

Thanks,
Stevan C. Allen

---

From: Spencer Shepler <[email-masked]>
Date: Mon, 17 Jan 2005 17:56:45 -0600

> doing or decided on regarding the race condition.

If the server is offering a grace period to its clients, then it must
use some form of stable storage for reasons described in section 8.6.3.
No stable storage usage means no grace period.

If there is no grace period, not sure I see any race condition with
SETCLIENTID other than the normal collision that can occur.

Spencer