Re: "[PATCH] nfsd: rework refcounting in filecache" caused nfstest/test/nfstest_delegation stuck

From: dai . ngo
Date: Thu Apr 27 2023 - 03:27:06 EST


This problem is fixed in nfsd-next with this commit:

119437271d94 NFSD: Fix problem of COMMIT and NFS4ERR_DELAY in infinite loop

-Dai

On 4/26/23 8:50 PM, Jie Zhou (Fujitsu) wrote:
hi,

Download nfstest program from
"http://git.linux-nfs.org/?p=mora/nfstest.git;a=summary";.
And run following test command and stuck at recall12 recall14
recall20 recall22 recall40 recall42 recall48 recall50.
./nfstest_delegation --nfsversion=4.0 -e /nfsroot --server <server
ip> --client <client2 ip> --trcdelay 10
test OS: RHEL9.2 Nightly Build

After I bisect linux kerenl, found that following patch caused above
bug.
From ac3a2585f018f10039b4a856dcb122da88c1c1c9 Mon Sep 17 00:00:00 2001
From: Jeff Layton <jlayton@xxxxxxxxxx>
Date: Sun, 11 Dec 2022 06:19:33 -0500
Subject: [PATCH] nfsd: rework refcounting in filecache

Run following command at different kernel version.
./nfstest_delegation --nfsversion=4.0 -e /nfsroot --server
192.168.122.153 --client 192.168.122.152 --trcdelay 10 -v all
--createlog --keeptraces --rexeclog recall22
>nfstest-delegationv4-log_recall22 2>&1

The following test result are attached.
kernel:
commit 0cfd8703e7da687924371e9bc77a025bdeba9637
Merge: 793582ff47f8 d3f2c402e448
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Apr 25 18:44:10 2023 -0700
Merge tag 'pm-6.4-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
result:
test program stuck
log:
nfstest-delegationv4-log_recall22_6.3.0

kernel:
commit ac3a2585f018f10039b4a856dcb122da88c1c1c9
Author: Jeff Layton <jlayton@xxxxxxxxxx>
Date: Sun Dec 11 06:19:33 2022 -0500
nfsd: rework refcounting in filecache
result:
test program stuck
log:
nfstest-delegationv4-log_recall22_ac3a2585f018

kernel:
commit e78e274eb22d966258a3845acc71d3c5b8ee2ea8
Author: Kees Cook <keescook@xxxxxxxxxxxx>
Date: Fri Dec 2 12:48:59 2022 -0800
NFSD: Avoid clashing function prototypes
result:
test program stop normally
log:
nfstest-delegationv4-log_recall22_e78e274eb22d

best regards,