All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Frank Filz" <ffilzlnx@mindspring.com>
To: "'Chuck Lever'" <cel@kernel.org>,
	"'Calum Mackay'" <calum.mackay@cdmnet.org>,
	"'Jeff Layton'" <jlayton@kernel.org>
Cc: <linux-nfs@vger.kernel.org>
Subject: RE: [PATCH pynfs v1] 4.0 server tests: remove RPLY14
Date: Mon, 2 Nov 2026 22:07:48 -0800	[thread overview]
Message-ID: <018501dd6b59$a92af8d0$fb80ea70$@mindspring.com> (raw)
In-Reply-To: <20261102214351.602543-1-cel@kernel.org>

Could we keep this test case but change the flags from "replay all" to
"ganesha"?

NFS-Ganesha still passes this test case.

Thanks

Frank

-----Original Message-----
From: Chuck Lever [mailto:cel@kernel.org] 
Sent: Monday, November 2, 2026 1:44 PM
To: Calum Mackay <calum.mackay@cdmnet.org>; Jeff Layton <jlayton@kernel.org>
Cc: linux-nfs@vger.kernel.org
Subject: [PATCH pynfs v1] 4.0 server tests: remove RPLY14

RPLY14 sends a CREATE, then resends it twice with the same XID on the same
TCP connection and expects NFS4_OK each time. The other RPLY tests exercise
the per-state-owner reply cache that RFC 7530 Section 9.1.7 requires, or
replay an idempotent LOOKUP. RPLY14 alone depends on an XID-based duplicate
request cache, which RFC 7530 does not specify.
Section 3.1.1 also forbids an NFSv4.0 client from retrying a request unless
the transport connection has been broken.

A recent NFSD change drops a retransmission that arrives on the connection
that carried the original request, so RPLY14 now fails against NFSD.
Reconnecting before the replay does not rescue the test.
NFSD may evict a DRC entry once the client has acknowledged the cached
reply, so the replayed CREATE executes a second time and fails with
NFS4ERR_EXIST.

Remove RPLY14 and record its code as retired.

Signed-off-by: Chuck Lever <cel@kernel.org>
---
 nfs4.0/servertests/st_replay.py | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git a/nfs4.0/servertests/st_replay.py
b/nfs4.0/servertests/st_replay.py index 48e5363432ec..7f490e3d48c3 100644
--- a/nfs4.0/servertests/st_replay.py
+++ b/nfs4.0/servertests/st_replay.py
@@ -250,14 +250,4 @@ def testOpenConfirmFail(t, env):
     ops += [op.open_confirm(stateid, c.get_seqid(t.word())+1)]
     _replay(env, c, ops, NFS4ERR_BAD_SEQID)
 
-def testMkdirReplay(t, env):
-    """REPLAY a succesful directory CREATE
-
-    FLAGS: replay all
-    DEPEND: MKDIR
-    CODE: RPLY14
-    """
-    c = env.c1
-    c.init_connection()
-    ops = c.go_home() + [op.create(createtype4(NF4DIR), t.word(), {})]
-    _replay(env, c, ops)
+# RPLY14 permanently retired, please do not reuse
--
2.56.0



  parent reply	other threads:[~2026-11-03  6:08 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-02 21:43 [PATCH pynfs v1] 4.0 server tests: remove RPLY14 Chuck Lever
2026-11-02 21:45 ` Jeff Layton
2026-11-03  6:07 ` Frank Filz [this message]
2026-11-03 13:14   ` Chuck Lever

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='018501dd6b59$a92af8d0$fb80ea70$@mindspring.com' \
    --to=ffilzlnx@mindspring.com \
    --cc=calum.mackay@cdmnet.org \
    --cc=cel@kernel.org \
    --cc=jlayton@kernel.org \
    --cc=linux-nfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.