On Tue, Nov 16, 2021 at 03:06:32PM -0800, dai.ngo@xxxxxxxxxx wrote: > Just a reminder that this patch is still waiting for your review. Yeah, I was procrastinating and hoping yo'ud figure out the pynfs failure for me.... I'll see if I can get some time today.--b. > > Thanks, > -Dai > > On 10/1/21 2:41 PM, dai.ngo@xxxxxxxxxx wrote: > > > >On 10/1/21 1:53 PM, J. Bruce Fields wrote: > >>On Tue, Sep 28, 2021 at 08:56:39PM -0400, Dai Ngo wrote: > >>>Hi Bruce, > >>> > >>>This series of patches implement the NFSv4 Courteous Server. > >>Apologies, I keep meaning to get back to this and haven't yet. > >> > >>I do notice I'm seeing a timeout on pynfs 4.0 test OPEN18. > > > >It's weird, this test passes on my system: > > > > > >[root@nfsvmf25 nfs4.0]# ./testserver.py $server --rundeps -v OPEN18 > >INIT st_setclientid.testValid : RUNNING > >INIT st_setclientid.testValid : PASS > >MKFILE st_open.testOpen : RUNNING > >MKFILE st_open.testOpen : PASS > >OPEN18 st_open.testShareConflict1 : RUNNING > >OPEN18 st_open.testShareConflict1 : PASS > >************************************************** > >INIT st_setclientid.testValid : PASS > >OPEN18 st_open.testShareConflict1 : PASS > >MKFILE st_open.testOpen : PASS > >************************************************** > >Command line asked for 3 of 673 tests > >Of those: 0 Skipped, 0 Failed, 0 Warned, 3 Passed > >[root@nfsvmf25 nfs4.0]# > > > >Do you have a network trace? > > > >-Dai > > > >> > >>--b. > >> > >>>A server which does not immediately expunge the state on lease > >>>expiration > >>>is known as a Courteous Server. A Courteous Server continues > >>>to recognize > >>>previously generated state tokens as valid until conflict > >>>arises between > >>>the expired state and the requests from another client, or the server > >>>reboots. > >>> > >>>The v2 patch includes the following: > >>> > >>>. add new callback, lm_expire_lock, to lock_manager_operations to > >>> allow the lock manager to take appropriate action with > >>>conflict lock. > >>> > >>>. handle conflicts of NFSv4 locks with NFSv3/NLM and local locks. > >>> > >>>. expire courtesy client after 24hr if client has not reconnected. > >>> > >>>. do not allow expired client to become courtesy client if there are > >>> waiters for client's locks. > >>> > >>>. modify client_info_show to show courtesy client and seconds from > >>> last renew. > >>> > >>>. fix a problem with NFSv4.1 server where the it keeps returning > >>> SEQ4_STATUS_CB_PATH_DOWN in the successful SEQUENCE reply, after > >>> the courtesy client re-connects, causing the client to keep sending > >>> BCTS requests to server. > >>> > >>>The v3 patch includes the following: > >>> > >>>. modified posix_test_lock to check and resolve conflict locks > >>> to handle NLM TEST and NFSv4 LOCKT requests. > >>> > >>>. separate out fix for back channel stuck in SEQ4_STATUS_CB_PATH_DOWN. > >>> > >>>The v4 patch includes: > >>> > >>>. rework nfsd_check_courtesy to avoid dead lock of fl_lock and > >>>client_lock > >>> by asking the laudromat thread to destroy the courtesy client. > >>> > >>>. handle NFSv4 share reservation conflicts with courtesy client. This > >>> includes conflicts between access mode and deny mode and vice versa. > >>> > >>>. drop the patch for back channel stuck in SEQ4_STATUS_CB_PATH_DOWN. > >>> > >>>The v5 patch includes: > >>> > >>>. fix recursive locking of file_rwsem from posix_lock_file. > >>> > >>>. retest with LOCKDEP enabled. > >>> > >>>NOTE: I will submit pynfs tests for courteous server including tests > >>>for share reservation conflicts in a separate patch. > >>>