Re: [nfsv4] 3530bis Issue 39: Clarification on renewing sequence IDs
<david.noveck@emc.com> Fri, 19 November 2010 22:39 UTC
Return-Path: <david.noveck@emc.com>
X-Original-To: nfsv4@core3.amsl.com
Delivered-To: nfsv4@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 11B0D3A67F3 for <nfsv4@core3.amsl.com>; Fri, 19 Nov 2010 14:39:19 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.599
X-Spam-Level:
X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id x4PgbjTS5q7K for <nfsv4@core3.amsl.com>; Fri, 19 Nov 2010 14:39:16 -0800 (PST)
Received: from mexforward.lss.emc.com (mexforward.lss.emc.com [128.222.32.20]) by core3.amsl.com (Postfix) with ESMTP id 2CBF73A67E3 for <nfsv4@ietf.org>; Fri, 19 Nov 2010 14:39:15 -0800 (PST)
Received: from hop04-l1d11-si04.isus.emc.com (HOP04-L1D11-SI04.isus.emc.com [10.254.111.24]) by mexforward.lss.emc.com (Switch-3.4.3/Switch-3.4.3) with ESMTP id oAJMe2u9014764 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 19 Nov 2010 17:40:03 -0500
Received: from mailhub.lss.emc.com (mailhub.lss.emc.com [10.254.222.226]) by hop04-l1d11-si04.isus.emc.com (RSA Interceptor); Fri, 19 Nov 2010 17:39:53 -0500
Received: from corpussmtp4.corp.emc.com (corpussmtp4.corp.emc.com [10.254.169.197]) by mailhub.lss.emc.com (Switch-3.4.3/Switch-3.4.3) with ESMTP id oAJMd46L017323; Fri, 19 Nov 2010 17:39:04 -0500
Received: from CORPUSMX50A.corp.emc.com ([128.221.62.43]) by corpussmtp4.corp.emc.com with Microsoft SMTPSVC(6.0.3790.4675); Fri, 19 Nov 2010 17:39:03 -0500
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Date: Fri, 19 Nov 2010 17:39:06 -0500
Message-ID: <BF3BB6D12298F54B89C8DCC1E4073D8002A5EE45@CORPUSMX50A.corp.emc.com>
In-Reply-To: <1290100143.7245.9.camel@heimdal.trondhjem.org>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: [nfsv4] 3530bis Issue 39: Clarification on renewing sequence IDs
Thread-Index: AcuHQ4e3YKOdtgbGS9StoVteB11dtgANZYew
References: <4CACD9BF.2010809@oracle.com> <4CD32C31.3040909@oracle.com><1288965554.3975.27.camel@heimdal.trondhjem.org><BF3BB6D12298F54B89C8DCC1E4073D8002945154@CORPUSMX50A.corp.emc.com> <1290100143.7245.9.camel@heimdal.trondhjem.org>
From: david.noveck@emc.com
To: Trond.Myklebust@netapp.com
X-OriginalArrivalTime: 19 Nov 2010 22:39:03.0782 (UTC) FILETIME=[91533060:01CB883A]
X-EMM-MHVC: 1
X-EMM-MFVC: 1
Cc: Robert.Thurlow@oracle.com, nfsv4@ietf.org
Subject: Re: [nfsv4] 3530bis Issue 39: Clarification on renewing sequence IDs
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/nfsv4>
List-Post: <mailto:nfsv4@ietf.org>
List-Help: <mailto:nfsv4-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 19 Nov 2010 22:39:19 -0000
SEQ_STATUS_LEASE_MOVED was not intended to be the last word on this process. It was only intended to be the last word on it in NFSv4.1 :-) I don't see the scalability issue for the client SEQUENCE check. You have a per-client data structure and you keep a set of status bits in it which you or into every sequence response. There is also a count of file systems that need to get their locations fetched. You only change the count when people get locations or something moves. When the count changes to or from zero the status bit changes. I do see the issue for client probe. I think CB_LEASE_MOVED is a fine solution. I think we may have been in this mode of being reluctant to make it a requirement to have callbacks working. I think we don't have to require it. You can still have SEQ_STATUS_LEASE_MOVED. It is just that you now have a simple way to find out the specific fs which moved and that it will short-circuit the process of finding the fs that moved so that you can get the fs_locations[_info] and thus resetting the status bit. I think that this kind of thing makes sense for v4.2, no matter what scope decision we make. Even if you were to decide on a bug-only minor version, I think this kind of cleanup makes sense to put in the minor version. Let's not get into is-this-*really*-a-bug mode. I accept the onus of having co-edited a buggy minor version. I can't see us doing a critical-bug-only minor version. I think we will need to have a v4.2 document minor version document in place soon. This kind of small thing (bug or not) is just not big enough to merit an internet-draft. If you require it, these things will just not get done. I think that once we have a framework for this sort of small addition, we can publish the text for the new op or callback in messages on the working group list and then incorporate them in the next v4.2 draft, once there is rough consensus. My suggestion is that we make it the practice to publish proposed v4.2 text in the form of xml2rfc xml within the working group email to make it simpler for the v4.2 document editor to incorporate. -----Original Message----- From: nfsv4-bounces@ietf.org [mailto:nfsv4-bounces@ietf.org] On Behalf Of Trond Myklebust Sent: Thursday, November 18, 2010 12:09 PM To: Noveck, David Cc: Robert.Thurlow@oracle.com; nfsv4@ietf.org Subject: Re: [nfsv4] 3530bis Issue 39: Clarification on renewing sequence IDs So, I don't think that SEQ_STATUS_LEASE_MOVED should be the last word on this process. SEQ_STATUS_LEASE_MOVED has the same scalability problems that NFS4ERR_LEASE_MOVED does: if the server is exporting 1000 or so volumes, and one of them moves, it has to check every time a client sends a SEQUENCE op (i.e. pretty much every COMPOUND) if that client has completed its search for the absent volume. Furthermore, it will be receiving a bunch of new RPC requests as the clients all probe 1000 volumes for the absent one. NFSv4.1 has solved the problem of callbacks by means of the session backchannel. Why can't we now solve the problem of LEASE_MOVED by adding a CB_LEASE_MOVED operation which reports not only that a filesystem is missing, but also identifies which filesystem (e.g. by including the fsid)? Cheers Trond On Sun, 2010-11-07 at 01:04 -0500, david.noveck@emc.com wrote: > I agree with Trond's argument as to seqid, i.e. that you should > increment the seqid in the case of NFS4ERR_LEASE_MOVED. > > NFS4ERR_LEASE_MOVED was buried at a cross-roads in RFC5661, but there we > have SEQ_STATUS_LEASE_MOVED so we don't need it. > > If you bury it in RFC3530bis, you do have to have some way to deal with > the issue of letting the client find out that there is a migrated lease. > Otherwise, there is an unbounded period in which the new server will not > hear from the client and the client's open files could be lost. > > The alternative to the monstrous hack would be to require the server to > simulate a reboot. The client would see a STALE client or stateid error > and then he would go through the reclaim sequence for both any migrated > and non-migrated fs's. That seems harder to make happen than > LEASE_MOVED, as monstrous as it is. > > > -----Original Message----- > From: nfsv4-bounces@ietf.org [mailto:nfsv4-bounces@ietf.org] On Behalf > Of Trond Myklebust > Sent: Friday, November 05, 2010 9:59 AM > To: Robert Thurlow > Cc: NFSv4 > Subject: Re: [nfsv4] 3530bis Issue 39: Clarification on renewing > sequence IDs > > On Thu, 2010-11-04 at 15:57 -0600, Robert Thurlow wrote: > > Robert Thurlow wrote: > > > Hi folks, > > > > > > This is issue 39 from > > > http://github.com/loghyr/3530bis/blob/master/tasklist.txt. > > > > > > In implementing NFSv4 migration support, we believe that > > > MOVED and LEASE_MOVED need to be added to the list of errors > > > in 8.1.5 which do NOT result in incrementing the open owner > > > or lock owner sequence ID. The goal is to make the sequence > > > ID readily calculable for both the client and the destination > > > server after the migration has occurred. > > > > > > On the 3530bis call, this appeared exactly backwards to some > > > others - that since a completely gross error had not occurred, > > > we should increment the sequence ID and the client and the > > > destination server should know to expect that when they interact > > > after a migration. I do not know this issue well enough to > > > properly defend a position, so please reply with your reasoned > > > opinion :-) > > > > I don't think this has had a response. If you disagree with > > the wording change, now is the time to say so. > > As stated on the confcall, I strongly disagree with this change w.r.t. > NFS4ERR_LEASE_MOVED. The operation that resulted in a > NFS4ERR_LEASE_MOVED cannot be safely replayed if the sequence id has not > been bumped. > > The point is that NFS4ERR_LEASE_MOVED is an error that depends on the > state of a _different_ filesystem. It does not even pertain to the > actual state you are trying to modify (and is a monstrous hack). Worse > yet, that error condition can be cleared at any time with no > consequences for the stateids held by the client, so unlike > NFS4ERR_BAD_STATEID or NFS4ERR_BAD_SEQID, there is no ordering w.r.t. > the operation that you are retrying. > > IOW: if the error condition happens to get cleared between two replays > of the operation, the client may end up getting 2 conflicting replies > (one NFS4ERR_LEASE_MOVED, the other being a change of state on the > server). Which one does it choose? > > So how about counter-proposal: we bury NFS4ERR_LEASE_MOVED at a > cross-roads with a stake through its heart, and promise never to mention > it again except when the kids need scaring to bed... > > Trond > _______________________________________________ > nfsv4 mailing list > nfsv4@ietf.org > https://www.ietf.org/mailman/listinfo/nfsv4 > -- Trond Myklebust Linux NFS client maintainer NetApp Trond.Myklebust@netapp.com www.netapp.com _______________________________________________ nfsv4 mailing list nfsv4@ietf.org https://www.ietf.org/mailman/listinfo/nfsv4
- [nfsv4] 3530bis Issue 39: Clarification on renewi… Robert Thurlow
- Re: [nfsv4] 3530bis Issue 39: Clarification on re… Robert Thurlow
- Re: [nfsv4] 3530bis Issue 39: Clarification on re… Trond Myklebust
- Re: [nfsv4] 3530bis Issue 39: Clarification on re… david.noveck
- Re: [nfsv4] 3530bis Issue 39: Clarification on re… Trond Myklebust
- Re: [nfsv4] 3530bis Issue 39: Clarification on re… david.noveck
- Re: [nfsv4] 3530bis Issue 39: Clarification on re… Trond Myklebust
- Re: [nfsv4] 3530bis Issue 39: Clarification on re… Haynes, Tom
- Re: [nfsv4] 3530bis Issue 39: Clarification on re… Spencer Shepler
- Re: [nfsv4] 3530bis Issue 39: Clarification on re… Thomas Haynes