[pnfs] [PATCH 9/9] pnfs client prevent race in sequence slot
Trond Myklebust
trond.myklebust at fys.uio.no
Thu Sep 27 17:59:07 EDT 2007
On Thu, 2007-09-27 at 17:54 -0400, Trond Myklebust wrote:
> On Thu, 2007-09-27 at 22:54 +0200, Benny Halevy wrote:
>
> > The problem with doing this is that you might be racing with the
> > original call in case it
> > was delayed in the network for some obscure reason and you could get
> > MISORDERED or DELAY
> > on the retry. In the DELAY case you'll need to poll the server until it
> > finishes processing the previous
> > request, then you should get MISORDERED again and you can try seq#+1 yet
> > again.
>
> You should never get a NFS4ERR_SEQ_MISORDERED error since you are
> retrying a sequenceid that is known to be either the next free
> sequenceid or the current in-use one. You should therefore get either
> NFS4ERR_DELAY or NFS4ERR_SEQ_FALSE_RETRY. Both those errors are obvious
> to recover from...
Ah... However, I see one problem:
If your RPC request happens to be identical to the last one, then the
server may treat it as a replay. Not good if, for instance, you are
trying to call GETATTR after sending a non-idempotent operation on
another slot...
Trond
More information about the pNFS
mailing list