[pnfs] [nfs41] 5 Patches: Some client session recovery functionality

Adamson, Andy William.Adamson at netapp.com
Fri May 23 14:31:06 EDT 2008


The 5 patches I just submitted are an improvement over our current client session recovery in that it should 'fix' the Connectathon bug we had with the AIX NFSv4.1 server. The AIX server would return a NFS4ERR_SEQ_MISOREDERED, our client would go into an infinte CREATE_SESSION loop sending CREATE_SESSIONs with the already used clientid slot sequence number which the AIX server would correctly ignore.

But there is a lot more to do.

Basically, I've implemented the 'Big Hammer' solution for nfs4_handle_exception(): upon any session related error destroy the current session and create a new one, using a bumped clientid sequence number, and if a session to a server keeps on failing, give up after NFS41_MAX_SESSION_RECOVER times (set to 4).

I think this big hammer solution will be needed for some errors [NFS4ERR_BADSESSION], and as a last resort, so it is good to have. Here are some ideas for additional client session recovery functionality:

- add the 'big hammer' to nfs4_async_handle_error()
- wait for all slots to be empty prior to calling DESTROY_SESSION.
- for some errors, [ NFS4ERR_BADSLOT, NFS4ERR_SEQ_MISORDERED,  NFS4ERR_SEQUENCE_POS, ...] mark slot as 'in error' and don't use it
- process 'in error' slots on a per error basis and try to recover use of slot

I'll add the 'big hammer' code to nfs4_async_handle_error.

I used the pyNFS NFSV4.1 server to test. Nothing fancy, just returned NFS4ERR_SEQ_MISORDERED for every OP_SEQUENCE. I'll work with Fred and look into the feasibility of developing client session recovery tests using the pyNFS server.

-->Andy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://linux-nfs.org/pipermail/pnfs/attachments/20080523/1ddad2b9/attachment.htm 


More information about the pNFS mailing list