All of lore.kernel.org
 help / color / mirror / Atom feed
* [pynfs PATCH 0/3] a few fixes
@ 2019-03-11 15:49 Scott Mayhew
  2019-03-11 15:49 ` [pynfs PATCH 1/3] nfs4.1: don't cache sessionids and clientids after destroying Scott Mayhew
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Scott Mayhew @ 2019-03-11 15:49 UTC (permalink / raw)
  To: bfields; +Cc: linux-nfs

The first patch fixes bogus DESTROY_SESSION and DESTROY_CLIENTID ops
being sent to the server.  The other two prevent session and client
records from hanging around on the server.

Scott Mayhew (3):
  nfs4.1: don't cache sessionids and clientids after destroying
  nfs4.1: clean up the session and client created in
    Environment.finish()
  nfs4.1: close the file created in SEQ10b

 nfs4.1/server41tests/environment.py | 4 ++++
 nfs4.1/server41tests/st_sequence.py | 5 ++++-
 2 files changed, 8 insertions(+), 1 deletion(-)

-- 
2.17.2


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [pynfs PATCH 1/3] nfs4.1: don't cache sessionids and clientids after destroying
  2019-03-11 15:49 [pynfs PATCH 0/3] a few fixes Scott Mayhew
@ 2019-03-11 15:49 ` Scott Mayhew
  2019-03-11 15:49 ` [pynfs PATCH 2/3] nfs4.1: clean up the session and client created in Environment.finish() Scott Mayhew
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Scott Mayhew @ 2019-03-11 15:49 UTC (permalink / raw)
  To: bfields; +Cc: linux-nfs

Test.run() cleans up session and client records after every test, but
that cleanup doesn't get rid of the locally cached sessionids and
clientids, resulting in subsequent tests sending a multiple bogus
DESTROY_SESSIONs and DESTROY_CLIENTIDs which all return
NFS4ERR_BADSESSION and NFS4ERR_STALE_CLIENTID.

Signed-off-by: Scott Mayhew <smayhew@redhat.com>
---
 nfs4.1/server41tests/environment.py | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/nfs4.1/server41tests/environment.py b/nfs4.1/server41tests/environment.py
index 9e1201f..1a898f8 100644
--- a/nfs4.1/server41tests/environment.py
+++ b/nfs4.1/server41tests/environment.py
@@ -256,11 +256,13 @@ class Environment(testmod.Environment):
         """Destroy client name env.c1"""
         for sessionid in self.c1.sessions.keys():
             self.c1.compound([op.destroy_session(sessionid)])
+            del(self.c1.sessions[sessionid])
 
     def clean_clients(self):
         """Destroy client name env.c1"""
         for clientid in self.c1.clients.keys():
             self.c1.compound([op.destroy_clientid(clientid)])
+            del(self.c1.clients[clientid])
 
 #########################################
 debug_fail = False
-- 
2.17.2


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [pynfs PATCH 2/3] nfs4.1: clean up the session and client created in Environment.finish()
  2019-03-11 15:49 [pynfs PATCH 0/3] a few fixes Scott Mayhew
  2019-03-11 15:49 ` [pynfs PATCH 1/3] nfs4.1: don't cache sessionids and clientids after destroying Scott Mayhew
@ 2019-03-11 15:49 ` Scott Mayhew
  2019-03-11 15:49 ` [pynfs PATCH 3/3] nfs4.1: close the file created in SEQ10b Scott Mayhew
  2019-03-13 14:56 ` [pynfs PATCH 0/3] a few fixes J. Bruce Fields
  3 siblings, 0 replies; 5+ messages in thread
From: Scott Mayhew @ 2019-03-11 15:49 UTC (permalink / raw)
  To: bfields; +Cc: linux-nfs

Otherwise, they stick around on the server for a lease period.

Signed-off-by: Scott Mayhew <smayhew@redhat.com>
---
 nfs4.1/server41tests/environment.py | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/nfs4.1/server41tests/environment.py b/nfs4.1/server41tests/environment.py
index 1a898f8..0ce6943 100644
--- a/nfs4.1/server41tests/environment.py
+++ b/nfs4.1/server41tests/environment.py
@@ -208,6 +208,8 @@ class Environment(testmod.Environment):
         sess = self.c1.new_client_session("Environment.init_%i" % self.timestamp)
         clean_dir(sess, self.opts.home)
         sess.c.null()
+        self.clean_sessions()
+        self.clean_clients()
 
     def startUp(self):
         """Run before each test"""
-- 
2.17.2


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [pynfs PATCH 3/3] nfs4.1: close the file created in SEQ10b
  2019-03-11 15:49 [pynfs PATCH 0/3] a few fixes Scott Mayhew
  2019-03-11 15:49 ` [pynfs PATCH 1/3] nfs4.1: don't cache sessionids and clientids after destroying Scott Mayhew
  2019-03-11 15:49 ` [pynfs PATCH 2/3] nfs4.1: clean up the session and client created in Environment.finish() Scott Mayhew
@ 2019-03-11 15:49 ` Scott Mayhew
  2019-03-13 14:56 ` [pynfs PATCH 0/3] a few fixes J. Bruce Fields
  3 siblings, 0 replies; 5+ messages in thread
From: Scott Mayhew @ 2019-03-11 15:49 UTC (permalink / raw)
  To: bfields; +Cc: linux-nfs

Otherwise, the DESTROY_CLIENTID sent during cleanup returns
NFS4ERR_CLIENTID_BUSY.

Signed-off-by: Scott Mayhew <smayhew@redhat.com>
---
 nfs4.1/server41tests/st_sequence.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/nfs4.1/server41tests/st_sequence.py b/nfs4.1/server41tests/st_sequence.py
index 391b226..c21d8f7 100644
--- a/nfs4.1/server41tests/st_sequence.py
+++ b/nfs4.1/server41tests/st_sequence.py
@@ -1,6 +1,6 @@
 from st_create_session import create_session
 from xdrdef.nfs4_const import *
-from .environment import check, fail, bad_sessionid, create_file
+from .environment import check, fail, bad_sessionid, create_file, close_file
 from xdrdef.nfs4_type import channel_attrs4
 import nfs_ops
 op = nfs_ops.NFS4ops()
@@ -223,12 +223,15 @@ def testReplayCache007(t, env):
     sess1 = env.c1.new_client_session(env.testname(t))
     res = create_file(sess1, "%s_1" % env.testname(t))
     check(res)
+    fh = res.resarray[-1].object
+    stateid = res.resarray[-2].stateid
     ops = env.home + [op.savefh(),\
           op.rename("%s_1" % env.testname(t), "%s_2" % env.testname(t))]
     res1 = sess1.compound(ops, cache_this=False)
     check(res1, NFS4_OK)
     res2 = sess1.compound(ops, seq_delta=0, cache_this=False)
     check(res2, [NFS4_OK, NFS4ERR_RETRY_UNCACHED_REP])
+    close_file(sess1, fh, stateid=stateid)
 
 def testOpNotInSession(t, env):
     """Operations other than SEQUENCE, BIND_CONN_TO_SESSION, EXCHANGE_ID,
-- 
2.17.2


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [pynfs PATCH 0/3] a few fixes
  2019-03-11 15:49 [pynfs PATCH 0/3] a few fixes Scott Mayhew
                   ` (2 preceding siblings ...)
  2019-03-11 15:49 ` [pynfs PATCH 3/3] nfs4.1: close the file created in SEQ10b Scott Mayhew
@ 2019-03-13 14:56 ` J. Bruce Fields
  3 siblings, 0 replies; 5+ messages in thread
From: J. Bruce Fields @ 2019-03-13 14:56 UTC (permalink / raw)
  To: Scott Mayhew; +Cc: linux-nfs

On Mon, Mar 11, 2019 at 11:49:48AM -0400, Scott Mayhew wrote:
> The first patch fixes bogus DESTROY_SESSION and DESTROY_CLIENTID ops
> being sent to the server.  The other two prevent session and client
> records from hanging around on the server.

Thanks!  All three applied.--b.

> 
> Scott Mayhew (3):
>   nfs4.1: don't cache sessionids and clientids after destroying
>   nfs4.1: clean up the session and client created in
>     Environment.finish()
>   nfs4.1: close the file created in SEQ10b
> 
>  nfs4.1/server41tests/environment.py | 4 ++++
>  nfs4.1/server41tests/st_sequence.py | 5 ++++-
>  2 files changed, 8 insertions(+), 1 deletion(-)
> 
> -- 
> 2.17.2

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-03-13 14:56 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-11 15:49 [pynfs PATCH 0/3] a few fixes Scott Mayhew
2019-03-11 15:49 ` [pynfs PATCH 1/3] nfs4.1: don't cache sessionids and clientids after destroying Scott Mayhew
2019-03-11 15:49 ` [pynfs PATCH 2/3] nfs4.1: clean up the session and client created in Environment.finish() Scott Mayhew
2019-03-11 15:49 ` [pynfs PATCH 3/3] nfs4.1: close the file created in SEQ10b Scott Mayhew
2019-03-13 14:56 ` [pynfs PATCH 0/3] a few fixes J. Bruce Fields

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.