Message ID | 20250211032457.7396-1-liwang@redhat.com |
---|---|
State | Accepted |
Headers | show |
Series | statx07: Skip test if NFS server is never enabled | expand |
Hi Li, all, > The statx07 test requires an active NFS server, as it relies on > exportfs, which reads from '/var/lib/nfs/etab'. By default, etab > file does not exist unless the NFS server is started at least once > (since new version nfs-utils-2.5.4-32.el9). > This causing the test to fail when etab is missing: > tst_test.c:1722: TINFO: Overall timeout per run is 0h 00m 30s > tst_buffers.c:57: TINFO: Test is using guarded buffers > exportfs: can't open /var/lib/nfs/etab for reading > statx07.c:136: TBROK: failed to exportfs > This patch adds a check using access("/var/lib/nfs/etab", F_OK) > before running the test. If the file does not exist, the test > is skipped (TCONF) instead of failing, preventing misleading > test failures. > Signed-off-by: Li Wang <liwang@redhat.com> > Cc: Yongcheng Yang <yoyang@redhat.com> > --- > testcases/kernel/syscalls/statx/statx07.c | 3 +++ > 1 file changed, 3 insertions(+) > diff --git a/testcases/kernel/syscalls/statx/statx07.c b/testcases/kernel/syscalls/statx/statx07.c > index 968174330..bc8e6fd65 100644 > --- a/testcases/kernel/syscalls/statx/statx07.c > +++ b/testcases/kernel/syscalls/statx/statx07.c > @@ -115,6 +115,9 @@ static void setup(void) > int ret; > char server_path[BUFF_SIZE]; > + if (access("/var/lib/nfs/etab", F_OK) < 0) > + tst_brk(TCONF, "nfs-server might not set up"); On Tumbleweed with nfs-client-2.8.1-44.2.x86_64: # systemctl stop nfs-server.service # ./statx07 ... tst_test.c:1904: TINFO: Tested kernel: 6.13.0-2.g0127a37-default #1 SMP PREEMPT_DYNAMIC Thu Jan 23 11:21:55 UTC 2025 (0127a37) x86_64 ... statx07.c:141: TCONF: nfs server not set up?: EOPNOTSUPP (95) $ ls -la /var/lib/nfs/etab The same behavior is on older systems (I checked SLE15-SP4 with 5.14 based kernel and nfs-client-2.1.1). There is a working detection. I wonder what is different on the system you test. OTOH fortunately this patch would not break SLES/openSUSE (it would just not help to detect), therefore I'm not against it. Kind regards, Petr > + > mode_t old_umask = umask(0); > SAFE_MKDIR(SERV_PATH, DEFAULT_MODE);
Hi Petr, On Tue, Feb 11, 2025 at 06:20:19PM +0100, Petr Vorel wrote: > Hi Li, all, > > > The statx07 test requires an active NFS server, as it relies on > > exportfs, which reads from '/var/lib/nfs/etab'. By default, etab > > file does not exist unless the NFS server is started at least once > > (since new version nfs-utils-2.5.4-32.el9). > > > This causing the test to fail when etab is missing: > > > tst_test.c:1722: TINFO: Overall timeout per run is 0h 00m 30s > > tst_buffers.c:57: TINFO: Test is using guarded buffers > > exportfs: can't open /var/lib/nfs/etab for reading > > statx07.c:136: TBROK: failed to exportfs > > > This patch adds a check using access("/var/lib/nfs/etab", F_OK) > > before running the test. If the file does not exist, the test > > is skipped (TCONF) instead of failing, preventing misleading > > test failures. > > > Signed-off-by: Li Wang <liwang@redhat.com> > > Cc: Yongcheng Yang <yoyang@redhat.com> > > --- > > testcases/kernel/syscalls/statx/statx07.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > diff --git a/testcases/kernel/syscalls/statx/statx07.c b/testcases/kernel/syscalls/statx/statx07.c > > index 968174330..bc8e6fd65 100644 > > --- a/testcases/kernel/syscalls/statx/statx07.c > > +++ b/testcases/kernel/syscalls/statx/statx07.c > > @@ -115,6 +115,9 @@ static void setup(void) > > int ret; > > char server_path[BUFF_SIZE]; > > > + if (access("/var/lib/nfs/etab", F_OK) < 0) > > + tst_brk(TCONF, "nfs-server might not set up"); > > On Tumbleweed with nfs-client-2.8.1-44.2.x86_64: > > # systemctl stop nfs-server.service > # ./statx07 > ... > tst_test.c:1904: TINFO: Tested kernel: 6.13.0-2.g0127a37-default #1 SMP PREEMPT_DYNAMIC Thu Jan 23 11:21:55 UTC 2025 (0127a37) x86_64 > ... > statx07.c:141: TCONF: nfs server not set up?: EOPNOTSUPP (95) > > $ ls -la /var/lib/nfs/etab > > The same behavior is on older systems (I checked SLE15-SP4 with 5.14 based > kernel and nfs-client-2.1.1). > > There is a working detection. I wonder what is different on the system you test. > OTOH fortunately this patch would not break SLES/openSUSE (it would just not > help to detect), therefore I'm not against it. This is for an update of the nfs-utils spec file, see https://src.fedoraproject.org/rpms/nfs-utils/c/eea36e50024efbac78514f96a29f05306905118b?//branch=rawhide Now /var/lib/nfs/etab and /var/lib/nfs/rmtab are marked as %config files and they will not be created when nfs-utils is just installed. Best Regards, Yongcheng > > Kind regards, > Petr > > > + > > mode_t old_umask = umask(0); > > > SAFE_MKDIR(SERV_PATH, DEFAULT_MODE); >
On Wed, Feb 12, 2025 at 9:08 AM Yongcheng Yang <yoyang@redhat.com> wrote: > Hi Petr, > > On Tue, Feb 11, 2025 at 06:20:19PM +0100, Petr Vorel wrote: > > Hi Li, all, > > > > > The statx07 test requires an active NFS server, as it relies on > > > exportfs, which reads from '/var/lib/nfs/etab'. By default, etab > > > file does not exist unless the NFS server is started at least once > > > (since new version nfs-utils-2.5.4-32.el9). > > > > > This causing the test to fail when etab is missing: > > > > > tst_test.c:1722: TINFO: Overall timeout per run is 0h 00m 30s > > > tst_buffers.c:57: TINFO: Test is using guarded buffers > > > exportfs: can't open /var/lib/nfs/etab for reading > > > statx07.c:136: TBROK: failed to exportfs > > > > > This patch adds a check using access("/var/lib/nfs/etab", F_OK) > > > before running the test. If the file does not exist, the test > > > is skipped (TCONF) instead of failing, preventing misleading > > > test failures. > > > > > Signed-off-by: Li Wang <liwang@redhat.com> > > > Cc: Yongcheng Yang <yoyang@redhat.com> > > > --- > > > testcases/kernel/syscalls/statx/statx07.c | 3 +++ > > > 1 file changed, 3 insertions(+) > > > > > diff --git a/testcases/kernel/syscalls/statx/statx07.c > b/testcases/kernel/syscalls/statx/statx07.c > > > index 968174330..bc8e6fd65 100644 > > > --- a/testcases/kernel/syscalls/statx/statx07.c > > > +++ b/testcases/kernel/syscalls/statx/statx07.c > > > @@ -115,6 +115,9 @@ static void setup(void) > > > int ret; > > > char server_path[BUFF_SIZE]; > > > > > + if (access("/var/lib/nfs/etab", F_OK) < 0) > > > + tst_brk(TCONF, "nfs-server might not set up"); > > > > On Tumbleweed with nfs-client-2.8.1-44.2.x86_64: > > > > # systemctl stop nfs-server.service > > # ./statx07 > > ... > > tst_test.c:1904: TINFO: Tested kernel: 6.13.0-2.g0127a37-default #1 SMP > PREEMPT_DYNAMIC Thu Jan 23 11:21:55 UTC 2025 (0127a37) x86_64 > > ... > > statx07.c:141: TCONF: nfs server not set up?: EOPNOTSUPP (95) > > > > $ ls -la /var/lib/nfs/etab > > > > The same behavior is on older systems (I checked SLE15-SP4 with 5.14 > based > > kernel and nfs-client-2.1.1). > > > > There is a working detection. I wonder what is different on the system > you test. > > OTOH fortunately this patch would not break SLES/openSUSE (it would just > not > > help to detect), therefore I'm not against it. > > This is for an update of the nfs-utils spec file, see > > https://src.fedoraproject.org/rpms/nfs-utils/c/eea36e50024efbac78514f96a29f05306905118b?//branch=rawhide > > Now /var/lib/nfs/etab and /var/lib/nfs/rmtab are marked as %config files > and they will not be created when nfs-utils is just installed. > Ture, so if statx07 test on a system never starts nfs service, which the etab file is not being created, it would be failed like that. Once we start and then stop the nfs service the problem disappears because etab file is created by the starting process. That's why I sent the config file detection additionally. > > Best Regards, > Yongcheng > > > > > Kind regards, > > Petr > > > > > + > > > mode_t old_umask = umask(0); > > > > > SAFE_MKDIR(SERV_PATH, DEFAULT_MODE); > > > >
Pushed, thanks.
diff --git a/testcases/kernel/syscalls/statx/statx07.c b/testcases/kernel/syscalls/statx/statx07.c index 968174330..bc8e6fd65 100644 --- a/testcases/kernel/syscalls/statx/statx07.c +++ b/testcases/kernel/syscalls/statx/statx07.c @@ -115,6 +115,9 @@ static void setup(void) int ret; char server_path[BUFF_SIZE]; + if (access("/var/lib/nfs/etab", F_OK) < 0) + tst_brk(TCONF, "nfs-server might not set up"); + mode_t old_umask = umask(0); SAFE_MKDIR(SERV_PATH, DEFAULT_MODE);
The statx07 test requires an active NFS server, as it relies on exportfs, which reads from '/var/lib/nfs/etab'. By default, etab file does not exist unless the NFS server is started at least once (since new version nfs-utils-2.5.4-32.el9). This causing the test to fail when etab is missing: tst_test.c:1722: TINFO: Overall timeout per run is 0h 00m 30s tst_buffers.c:57: TINFO: Test is using guarded buffers exportfs: can't open /var/lib/nfs/etab for reading statx07.c:136: TBROK: failed to exportfs This patch adds a check using access("/var/lib/nfs/etab", F_OK) before running the test. If the file does not exist, the test is skipped (TCONF) instead of failing, preventing misleading test failures. Signed-off-by: Li Wang <liwang@redhat.com> Cc: Yongcheng Yang <yoyang@redhat.com> --- testcases/kernel/syscalls/statx/statx07.c | 3 +++ 1 file changed, 3 insertions(+)