Subject: yet more CLID_INUSE

From: [email-masked]
Date: Thu, 18 Jul 2002 15:58:07 -0400 (EDT)

Carl Burnett wrote:
> The callback information should be thought of as an attribute of the
> client, not part of its unique signature. The unique signature should best
> be limited to the nfs_client_id4 information (verifier and id). This is

Yep, I just heard that the callback info will change on a Solaris client
when it reboots, so using it seems to be out.

The problem is, if you only use the nfs_client_id4, I don't see how the
server can distinguish between a:

Client reboot - same "id", different "verifier"
2 Misconfigured Clients - same "id", different "verifier"

Therefore, it can either always return NFSERR_CLID_INUSE or never return
NFSERR_CLID_INUSE? (Which is right back where I started:-)

[stuff snipped]
> If one is willing to augment the NFS protocol structures a little, some
> improvement could perhaps be achieved. The SETCLIENTID4args could have
> a new clientid4 member added. When a client issues a new SETCLIENTID call
> for a server, it sends a clientid4 value of 0 indicating it does not yet
> have a server assigned client id. This tells the server to
I don't think this would help in this case, since I am assuming the
SETCLIENTID is being done just after a startup and does not yet have a
clientid4 shorthand. (As I understand the protocol, the only time a client
would need to do another SETCLIENTID after it has a clientid4 is when the
server has chosen to "forget the clientid4" for some reason.)

In other words, the case I am worried about would always have a clientid4
equal 0.

Any more ideas? rick

---

From: Spencer Shepler <[email-masked]>
Date: Thu, 18 Jul 2002 17:12:29 -0500

> 2 Misconfigured Clients - same "id", different "verifier"

If the 2 misconfigured clients are using the same IP address and
credential, then the server will not be able to differentiate.  As has
been said before, the client should be careful in constructing
nfs_client_id4.id such that collisions are very unlikely.

-- 
Spencer