Re: [nfsv4] Draft is updated following your comments, Thanks//答复: draft-mzhang-nfsv4-sequence-id-calibration-01

Rick Macklem <rick.macklem@gmail.com> Mon, 10 April 2023 20:15 UTC

Return-Path: <rick.macklem@gmail.com>
X-Original-To: nfsv4@ietfa.amsl.com
Delivered-To: nfsv4@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AD3C3C14CE3F for <nfsv4@ietfa.amsl.com>; Mon, 10 Apr 2023 13:15:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.094
X-Spam-Level:
X-Spam-Status: No, score=-2.094 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vHJJuRZlPfHU for <nfsv4@ietfa.amsl.com>; Mon, 10 Apr 2023 13:15:52 -0700 (PDT)
Received: from mail-pl1-x62e.google.com (mail-pl1-x62e.google.com [IPv6:2607:f8b0:4864:20::62e]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6E004C151548 for <nfsv4@ietf.org>; Mon, 10 Apr 2023 13:15:52 -0700 (PDT)
Received: by mail-pl1-x62e.google.com with SMTP id ik20so5528070plb.3 for <nfsv4@ietf.org>; Mon, 10 Apr 2023 13:15:52 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1681157751; x=1683749751; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=AzVcNM+Ip9q/vffHER2TYycg9S5N0syZmjCN6eu8l2c=; b=lrIyIk7VqAj2rfvZkIpkCUCVMcK5WcdtUAh7KA8WA3D9fx+6G5nTzpDyPxR+QmjsOq XfEb0w7+Y9f8omMuX3KtLOqbde6pnmQX1olTIjmP4gxjzNQmPrajzhg3cAf0lgnURq7U etKgydlOzLc29ck3lheAI6d0WxvoW7EK4tsHdOTWUy9+E8UKqBGF90dP/mTuGxcDtI59 2HZqEVXZ5jHCMHVM8wLpV4ennGzHhoiN1irv2ilWBGDc2PkajIxlj59po5sMZDY7zfQD FC3Y/K+YpaCMLoRYDB7/kb6dRf5B8sCbcuV0u2yu1jltojbegel9vM/gCvFEwJsyrtSu EaNQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1681157751; x=1683749751; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=AzVcNM+Ip9q/vffHER2TYycg9S5N0syZmjCN6eu8l2c=; b=BHk1BuPhZTxCFnz5bJtfFiRGm1Ve/iBMmd+vzZyaG81+dso9d480ngrrqjKT2qZ/Vu MktuY6e82MNOVtkXN++MHoAlKaIlmSRQiEO8vJ8XZsN0clGcmMOq4ddVRigJ5FMZBYfZ RAxVlM0y/+tjrOHSBbjYreqpJ4hsXIljl6d5e04pI2ThvgnDDYpCVM4lq8kpIO4L99Bi T9X9k21ldMahn8iigV5VW7N82qm2qs13pV2neK3aXHoC9uVS/JU6M5Uf/TsEQFh1D0CA mUay0XRNumKclaksOXUkOxGEj2UlrZDV9w38/LvFDdBwCsvLLfOwQY4ocL81XETgKEWR CPHA==
X-Gm-Message-State: AAQBX9eQYi3uTRQzsPhHw6X2OLolOqjNH4ElVnLfpwWnu/yPqsOAGREz u+kKxCseY+UiCNGOQAFGmkyuFDcE+xRu599a2gsVcs54Hw==
X-Google-Smtp-Source: AKy350ZRJ7UalF6j7teqPXtCY2MXAgcApe3js4pk3+QcIyrnJSeVzEknfi6GXqk3fekVQNP5OTfBEMiLjS5dmcqoV90=
X-Received: by 2002:a17:90b:357:b0:240:9b4c:536e with SMTP id fh23-20020a17090b035700b002409b4c536emr2534475pjb.6.1681157751273; Mon, 10 Apr 2023 13:15:51 -0700 (PDT)
MIME-Version: 1.0
References: <83389b42bb0f49509c757cdabd5c6b3f@huawei.com>
In-Reply-To: <83389b42bb0f49509c757cdabd5c6b3f@huawei.com>
From: Rick Macklem <rick.macklem@gmail.com>
Date: Mon, 10 Apr 2023 13:15:40 -0700
Message-ID: <CAM5tNy7F9Yf8rJQqy4rOwtcK_FSa+SuRsG=9KenB=mG9Wqv6MA@mail.gmail.com>
To: "yangjing (U)" <yangjing8=40huawei.com@dmarc.ietf.org>
Cc: Thomas Haynes <loghyr@gmail.com>, "nfsv4@ietf.org" <nfsv4@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/kal8heBu12AfatEzSs6UZ1wwKGs>
Subject: Re: [nfsv4] Draft is updated following your comments, Thanks//答复: draft-mzhang-nfsv4-sequence-id-calibration-01
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/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: Mon, 10 Apr 2023 20:15:56 -0000

On Sun, Apr 9, 2023 at 11:39 PM yangjing (U)
<yangjing8=40huawei.com@dmarc.ietf.org> wrote:
>
> The draft is updated as https://www.ietf.org/archive/id/draft-mzhang-nfsv4-sequence-id-calibration-02.txt
Here are a few generic comments about the draft (I know nothing about
detailed formatting, etc).

1 - It is my understanding that new operations can only be added to
minor version 2 and not
     minor version 1.
2 - I largely agree with what Tom Talpey said in his comments. I think
you need to figure out
     how/when the sequenceid is getting messed up.
     Note that it is my understanding that the main purpose of
sessions is to achieve
     "exactly once RPC semantics" (the fact that the reply cache is
bounded in size is a nice
     added feature, but not the principal purpose).
     As such, a sequenceid being misordered implies that "exactly
once" semantics could
     already have been broken by a software bug in the client.

     You note that the misordered sequenceid could be caused by
"network partitioning".
     In a correct implementation that should not be the case. After a
network partition heals,
     the client should re-send all outstanding RPCs with the same
Session/slot/sequenceid
     as was used in the original RPC request message. These should
succeed (no misordered
     error reply) using cached replies, as required.
     --> If a client's recovery from network partitioning is not doing
this, then it needs to be
           fixed.
     --> As above, if a misordered sequenceid error reply is due to a
client bug, then that
           must be fixed, since "exactly once" semantics may already be broken.
The common client bug that results in a misordered sequenceid error
reply happens when
an in-progress RPC gets interrupted before the RPC reply is processed.
This is not a case
where your suggested extension should be used, since the in-progress
RPC may still be
"in-progress". Although I am not sure there is a 100% correct way for
a client to handle
the need to interrupt an in-progress RPC, marking the session slot as
broken and no
longer using it is the best approach I am aware of. (I suspect you
might be referring to
the Linux client and I cannot comment on how it handles interruption
via signals or
timeouts for session slots, since I am not a Linux client implementor.)

It sounds like migration might be an exception to the above, but it
should be addressed
specifically (as Tom Talpey notes).

3 - If your extension were used by a client, how would the client know
whether or not
     there are still RPC(s) in-progress that have been assigned that
session/slot/sequenceid?

rick

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