]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
qa/cephfs: add session_timeout option support
authorXiubo Li <xiubli@redhat.com>
Tue, 20 Oct 2020 05:26:33 +0000 (01:26 -0400)
committerXiubo Li <xiubli@redhat.com>
Fri, 23 Oct 2020 06:27:37 +0000 (14:27 +0800)
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>
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 100cfd7646b89cbaa3d318e603ecb9a8f34ee314..54eb5e0a6f549daae8954be7277c9dac6693a70d 100644 (file)
@@ -1723,6 +1723,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 89549b39973e56d513d468fe248f2038dae38217..4fbf5743e757ff507abfd81ca5208c4a495db599 100644 (file)
@@ -571,6 +571,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)
 
@@ -638,6 +641,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)
 
     def destroy(self, reset_obj_attrs=True):
index 054c693305d93f6957742ba05b800c2e019b103f..e7d942a1096d88cda6a4841d04f0b8882883c944 100644 (file)
@@ -1166,6 +1166,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()