]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
qa: test fio with multiple versions of NFS
authorDhairya Parmar <dparmar@redhat.com>
Thu, 27 Feb 2025 12:16:40 +0000 (17:46 +0530)
committerJos Collin <jcollin@redhat.com>
Fri, 21 Nov 2025 11:45:24 +0000 (17:15 +0530)
This is coming from https://tracker.ceph.com/issues/69347, basically fio fails in
teuthology with v4.2 but passes with older versions (like v4.1). v4.2 on local/QE
machines has worked fine. This needs RCA, looking at libcephfs logs, it doesn't
look like it's CephFS. A thorough probe is needed, hence adding YAMLs to test
fio with different versions which also helps testing ceph client with different
version of NFS to help trace any regression.

unset.yaml is basically 4.2 for now but That may change someday or the nfs linux
driver may soon "add" things beyond 4.2 without adding an explicit version bump.

Fixes: https://tracker.ceph.com/issues/70203
Signed-off-by: Dhairya Parmar <dparmar@redhat.com>
Co-authored-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 95dcfd9d8c9f3c99e017050d6069ef9c41967d55)

qa/suites/fs/nfs/nfs-version/$ [new file with mode: 0644]
qa/suites/fs/nfs/nfs-version/.qa [new symlink]
qa/suites/fs/nfs/nfs-version/4.1.yaml [new file with mode: 0644]
qa/suites/fs/nfs/nfs-version/4.2.yaml [new file with mode: 0644]
qa/suites/fs/nfs/nfs-version/unset.yaml [new file with mode: 0644]
qa/tasks/cephfs/test_nfs.py

diff --git a/qa/suites/fs/nfs/nfs-version/$ b/qa/suites/fs/nfs/nfs-version/$
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/qa/suites/fs/nfs/nfs-version/.qa b/qa/suites/fs/nfs/nfs-version/.qa
new file mode 120000 (symlink)
index 0000000..a602a03
--- /dev/null
@@ -0,0 +1 @@
+../.qa/
\ No newline at end of file
diff --git a/qa/suites/fs/nfs/nfs-version/4.1.yaml b/qa/suites/fs/nfs/nfs-version/4.1.yaml
new file mode 100644 (file)
index 0000000..729a853
--- /dev/null
@@ -0,0 +1,2 @@
+nfs:
+  vers: 4.1
diff --git a/qa/suites/fs/nfs/nfs-version/4.2.yaml b/qa/suites/fs/nfs/nfs-version/4.2.yaml
new file mode 100644 (file)
index 0000000..850afbd
--- /dev/null
@@ -0,0 +1,2 @@
+nfs:
+  vers: 4.2
diff --git a/qa/suites/fs/nfs/nfs-version/unset.yaml b/qa/suites/fs/nfs/nfs-version/unset.yaml
new file mode 100644 (file)
index 0000000..076b224
--- /dev/null
@@ -0,0 +1,2 @@
+nfs:
+  vers: latest
index 265181b28ef6b3f94cacbeec629a67573a061c96..0ab2298248e339431c2dbe3ea989b6bd4a965c23 100644 (file)
@@ -379,9 +379,19 @@ class TestNFS(MgrTestCase):
         tries = 3
         while True:
             try:
-                self.ctx.cluster.run(
-                    args=['sudo', 'mount', '-t', 'nfs', '-o', f'port={port}',
-                          f'{ip}:{pseudo_path}', '/mnt'])
+                # TODO: NFS V4.2 is failing with libaio read.
+                # TODO: Reference: https://tracker.ceph.com/issues/70203
+                nfs_version_conf = self.ctx['config'].get('nfs', {})
+                nfs_version = nfs_version_conf.get('vers', 'latest')
+                if nfs_version == "latest":
+                    self.ctx.cluster.run(
+                        args=['sudo', 'mount', '-t', 'nfs', '-o', f'port={port}',
+                              f'{ip}:{pseudo_path}', '/mnt'])
+                else:
+                    self.ctx.cluster.run(
+                        args=['sudo', 'mount', '-t', 'nfs', '-o', f'port={port},vers={nfs_version}',
+                              f'{ip}:{pseudo_path}', '/mnt'])
+                    pass
                 break
             except CommandFailedError:
                 if tries: