In general, I want, but it's already happens on handling compound call: ``` for item in range(max_retries): res = self.c.compound([seq_op] + ops, **kwargs) res = self.update_seq_state(res, slot) if res.status != NFS4ERR_DELAY or not handle_state_errors: break if res.resarray[0].sr_status != NFS4ERR_DELAY: # As per errata ID 2006 for RFC 5661 section 15.1.1.3 # don't update the slot and sequence ID if the sequence # operation itself receives NFS4ERR_DELAY slot, seq_op = self._prepare_compound(saved_kwargs) time.sleep(delay_time) ``` Tigran. ----- Original Message ----- > From: "Jeff Layton" <jlayton@xxxxxxxxxx> > To: "Tigran Mkrtchyan" <tigran.mkrtchyan@xxxxxxx>, "Calum Mackay" <calum.mackay@xxxxxxxxxx> > Cc: "linux-nfs" <linux-nfs@xxxxxxxxxxxxxxx> > Sent: Tuesday, 15 April, 2025 16:10:11 > Subject: Re: [PATCH] deleg: break infinite loop in DELEG8 test > On Tue, 2025-04-15 at 13:48 +0200, Tigran Mkrtchyan wrote: >> The test assumes that the server can return either OK or DELAY, >> however, the 'break' condition checks only for OK. >> >> Signed-off-by: Tigran Mkrtchyan <tigran.mkrtchyan@xxxxxxx> >> --- >> nfs4.1/server41tests/st_delegation.py | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/nfs4.1/server41tests/st_delegation.py >> b/nfs4.1/server41tests/st_delegation.py >> index ea4c073..60b0de6 100644 >> --- a/nfs4.1/server41tests/st_delegation.py >> +++ b/nfs4.1/server41tests/st_delegation.py >> @@ -181,8 +181,8 @@ def testDelegRevocation(t, env): >> owner, how, claim) >> while 1: >> res = sess2.compound(env.home + [open_op]) >> - if res.status == NFS4_OK: >> - break; >> + if res.status == NFS4_OK or res.status == NFS4ERR_DELAY: >> + break >> check(res, [NFS4_OK, NFS4ERR_DELAY]) >> # just to keep sess1 renewed. This is a bit fragile, as we >> # depend on the above compound waiting no longer than the > > Don't you want to loop on NFS4ERR_DELAY? > > It looks like this is supposed to loop (with no DELEGRETURN) until the > open returns NFS4_OK. Presumably at that point the delegation will be > revoked and you'll get the expected errors. > -- > Jeff Layton <jlayton@xxxxxxxxxx>
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature