[nfsv4] NFS4ERR_ADMIN_REVOKE and edge conditions

rick@snowhite.cis.uoguelph.ca Fri, 01 October 2004 20:11 UTC

Received: from ietf-mx.ietf.org (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id QAA12384 for <nfsv4-web-archive@ietf.org>; Fri, 1 Oct 2004 16:11:43 -0400 (EDT)
Received: from megatron.ietf.org ([132.151.6.71]) by ietf-mx.ietf.org with esmtp (Exim 4.33) id 1CDTtJ-00037I-Dv for nfsv4-web-archive@ietf.org; Fri, 01 Oct 2004 16:20:33 -0400
Received: from localhost.localdomain ([127.0.0.1] helo=megatron.ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1CDTMk-0007Vi-T9; Fri, 01 Oct 2004 15:46:54 -0400
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1CDTGf-0002BM-V7 for nfsv4@megatron.ietf.org; Fri, 01 Oct 2004 15:40:38 -0400
Received: from ietf-mx.ietf.org (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id PAA10466 for <nfsv4@ietf.org>; Fri, 1 Oct 2004 15:40:34 -0400 (EDT)
From: rick@snowhite.cis.uoguelph.ca
Received: from ccshst09.cs.uoguelph.ca ([131.104.96.18]) by ietf-mx.ietf.org with esmtp (Exim 4.33) id 1CDTPB-0001GI-Rd for nfsv4@ietf.org; Fri, 01 Oct 2004 15:49:26 -0400
Received: from snowhite.cis.uoguelph.ca (snowhite.cis.uoguelph.ca [131.104.48.1]) by ccshst09.cs.uoguelph.ca (8.12.11/8.12.11) with ESMTP id i91JeZu4005929 for <nfsv4@ietf.org>; Fri, 1 Oct 2004 15:40:35 -0400
Received: (from rick@localhost) by snowhite.cis.uoguelph.ca (8.9.3/8.9.3) id PAA82051 for nfsv4@ietf.org; Fri, 1 Oct 2004 15:41:37 -0400 (EDT)
Date: Fri, 01 Oct 2004 15:41:37 -0400
Message-Id: <200410011941.PAA82051@snowhite.cis.uoguelph.ca>
To: nfsv4@ietf.org
X-Spam-Scanner: SpamAssassin 2.63 (http://www.spamassassin.org/) on ccshst09.cs.uoguelph.ca
X-Spam-Score: hits=0.3
X-Spam-Tests: NO_REAL_NAME
X-Spam-Status: Suspected
X-Scanned-By: MIMEDefang 2.39
X-Spam-Score: 0.3 (/)
X-Scan-Signature: 8abaac9e10c826e8252866cbe6766464
Subject: [nfsv4] NFS4ERR_ADMIN_REVOKE and edge conditions
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www1.ietf.org/pipermail/nfsv4>
List-Post: <mailto:nfsv4@ietf.org>
List-Help: <mailto:nfsv4-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=subscribe>
Sender: nfsv4-bounces@ietf.org
Errors-To: nfsv4-bounces@ietf.org
X-Spam-Score: 0.3 (/)
X-Scan-Signature: 39bd8f8cbb76cae18b7e23f7cf6b2b9f

I've been trying to figure out when the server can safely assume that the
client has seen the NFS4ERR_ADMIN_REVOKED, so it can be allowed to reclaim
state after a server reboot. (Related to the edge conditions discussed in
Sec. 8.6.3)

When the server revokes all state for a client, it seems pretty straight
forward:
- clientid plus all stateids get NFS4ERR_ADMIN_REVOKED when used
- unless the client is partitioned, it will see the errors and presumably
  do a setclientid/setclientid_confirm to get new state:
  - the server can then note the client has seen the loss of state and
    can again be allowed to recover state, noted in stable storage used
    for server reboot
- if it doesn't do a setclientid/setclientid_confirm, it won't be allowed
  to recover state, but since there isn't any valid state for it to
  recover (it was all revoked), that seems fine

But, when the server only revokes some state for the client (one lockowner
and associated locks or ...), how can the server know that the client
recognizes it has lost the state, so it can allow it to do reclaims after
a server reboot?
- it is tempting to say it would be ok once NFS4ERR_ADMIN_REVOKED is replied
  to use of the stateid, but can it be certain the client received the
  reply? (If another Op in sequence by seqid number was done for the stateid,
  it could then be certain, but a client isn't likely to continue to use a
  stateid after it gets NFS4ERR_ADMIN_REVOKED for it.)

It seems that, after revoking state, the server can only allow reclaims after
a server reboot if the client does a subsequent setclientid/setclientid_confirm.
But, if only some state was revoked, will it do that?

Thanks in advance for any input, rick

_______________________________________________
nfsv4 mailing list
nfsv4@ietf.org
https://www1.ietf.org/mailman/listinfo/nfsv4