On Sun, Oct 18, 2020 at 02:18:55PM +0300, Guy Keren wrote: > so suppose that the client sent two 'Open' requests in one compound. > the server finished processing the first, but then had a delegation on > the 2nd one, so it is supposed to return an NFS4_OK to the first Open > and a NFSERR_DELAY for the 2nd open (and this is also the compound > response that the server will store in its Duplicate Request Cache). > if the server had a temporary network disconnection, or had a server > restart, then when the client re-connects and re-sends this compound > request, it receives the response from the server's Duplicate Request > Cache (with OK for the first open and DELA?Y For the 2nd). than, i > presume that the client needs to accept that the first Open already > succeeded, and when creating a new session, re-send only the 2nd Open > request. does this make sense? Sounds right. > > I don't know of any client that actually does that, for what it's worth. > > The Linux client, for example, doesn't send any compounds that I can > > think of that have more than one nonidempotent op. > > does it mean that the linux NFS 4.1 client will also never send two > Write requests in the same compound? and never send an Open request > which might create a file, with a Write request in the same compound? "Will never" might be a little strong--maybe there'll be a reason to do it some day. A server should be prepared to handle it. But the client doesn't currently do either of those things. --b.