]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
qa/cephfs: add session_timeout option support 37841/head
authorXiubo Li <xiubli@redhat.com>
Tue, 20 Oct 2020 05:26:33 +0000 (01:26 -0400)
committerNathan Cutler <ncutler@suse.com>
Tue, 27 Oct 2020 08:31:45 +0000 (09:31 +0100)
When the mds revoking the Fwbl caps, the clients need to flush
the dirty data back to the OSDs, but the flush may make the OSDs
to be overloaded and slow, which may take more than 60 seconds to
finish. Then the MDS daemons will report the WRN messages.

For the teuthology test cases, let's just increase the timeout
value to make it work.

Fixes: https://tracker.ceph.com/issues/47565
Signed-off-by: Xiubo Li <xiubli@redhat.com>
(cherry picked from commit 0422673b6150df851a4ea1662637a77585cde52d)

qa/cephfs/overrides/session_timeout.yaml [new file with mode: 0644]
qa/suites/fs/basic_workload/overrides/session_timeout.yaml [new symlink]
qa/suites/fs/thrash/overrides/session_timeout.yaml [new symlink]
qa/suites/fs/verify/overrides/session_timeout.yaml [new symlink]
qa/tasks/ceph.py
qa/tasks/cephfs/filesystem.py
qa/tasks/vstart_runner.py

diff --git a/qa/cephfs/overrides/session_timeout.yaml b/qa/cephfs/overrides/session_timeout.yaml
new file mode 100644 (file)
index 0000000..a7a1633
--- /dev/null
@@ -0,0 +1,4 @@
+overrides:
+  ceph:
+    cephfs:
+      session_timeout: 300
diff --git a/qa/suites/fs/basic_workload/overrides/session_timeout.yaml b/qa/suites/fs/basic_workload/overrides/session_timeout.yaml
new file mode 120000 (symlink)
index 0000000..fce0318
--- /dev/null
@@ -0,0 +1 @@
+.qa/cephfs/overrides/session_timeout.yaml
\ No newline at end of file
diff --git a/qa/suites/fs/thrash/overrides/session_timeout.yaml b/qa/suites/fs/thrash/overrides/session_timeout.yaml
new file mode 120000 (symlink)
index 0000000..fce0318
--- /dev/null
@@ -0,0 +1 @@
+.qa/cephfs/overrides/session_timeout.yaml
\ No newline at end of file
diff --git a/qa/suites/fs/verify/overrides/session_timeout.yaml b/qa/suites/fs/verify/overrides/session_timeout.yaml
new file mode 120000 (symlink)
index 0000000..fce0318
--- /dev/null
@@ -0,0 +1 @@
+.qa/cephfs/overrides/session_timeout.yaml
\ No newline at end of file
index e9d9a4a3df0a89c277be2dbc0a87727706d3d0cc..31194e03397715c222dbc474b759b1c41da6e2b3 100644 (file)
@@ -1687,6 +1687,13 @@ def task(ctx, config):
             cephfs:
               max_mds: 2
 
+    To change the mdsmap's default session_timeout (60 seconds), use::
+
+        tasks:
+        - ceph:
+            cephfs:
+              session_timeout: 300
+
     Note, this will cause the task to check the /scratch_devs file on each node
     for available devices.  If no such file is found, /dev/sdb will be used.
 
index 91895a3ea7cb12ee695005bf60c1bb31371c20a6..bf337f84fc9cbef90d3618cb67692b699f14e028 100644 (file)
@@ -548,6 +548,9 @@ class Filesystem(MDSCluster):
     def set_max_mds(self, max_mds):
         self.set_var("max_mds", "%d" % max_mds)
 
+    def set_session_timeout(self, timeout):
+        self.set_var("session_timeout", "%d" % timeout)
+
     def set_allow_standby_replay(self, yes):
         self.set_var("allow_standby_replay", yes)
 
@@ -615,6 +618,11 @@ class Filesystem(MDSCluster):
             if max_mds > 1:
                 self.set_max_mds(max_mds)
 
+            # If absent will use the default value (60 seconds)
+            session_timeout = self.fs_config.get('session_timeout', 60)
+            if session_timeout != 60:
+                self.set_session_timeout(session_timeout)
+
         self.getinfo(refresh = True)
 
         
index a7f976d8ea5e2c15d52a91675b7736daf39ff4f0..50f5cc48f2f3ecf0dba9518e3bc86780f45574ab 100644 (file)
@@ -1119,6 +1119,7 @@ class LocalFilesystem(Filesystem, LocalMDSCluster):
         self.metadata_overlay = False
         self.data_pool_name = None
         self.data_pools = None
+        self.fs_config = None
 
         # Hack: cheeky inspection of ceph.conf to see what MDSs exist
         self.mds_ids = set()