[pnfs] Patch to fix ^C crash on mount

Iyer, Rahul Rahul.Iyer at netapp.com
Mon Jul 23 21:58:07 EDT 2007


Hi,
The attached patches fix the latter two problems mentioned in my email
below.
Regards
Rahul
 

> -----Original Message-----
> From: William A. (Andy) Adamson [mailto:andros at citi.umich.edu] 
> Sent: Wednesday, July 18, 2007 10:23 AM
> To: Iyer, Rahul
> Cc: pnfs at linux-nfs.org
> Subject: Re: [pnfs] Patch to fix ^C crash on mount
> 
> there are a bunch of exchange_id cases (similar to the 
> setclientid cases) that the server does not currently check. 
> these are enumerated in the pynfs exchange_id tests.
> 
> we should seriously review the exchange_id and setclientid 
> cases, and share code where possible.
> 
> -->Andy
> 
> 
> On 7/18/07, Iyer, Rahul <Rahul.Iyer at netapp.com> wrote:
> 
> 	Hi guys,
> 	This patch seems to have the side effect of eliminating 
> the umount crash
> 	as well. I'm still investigating as to why it worked. 
> Either ways, the
> 	client is now more stable than before. There are still 
> a few issues: 
> 	- The open sequence counter seems to be encoded as is. 
> So occasionally,
> 	it winds up with a seqid of 1 and the server rejects it with
> 	NFSERR_INVAL.
> 	- Read and write seem to update the lease value. This 
> is not true in 
> 	NFSv4.1 IIRC. The current code does this and has the 
> unfortunate effect
> 	that if pNFS reads or writes run long (> lease time), 
> then the client
> 	would think the lease is up to date and not send 
> SEQUENCE ops to the 
> 	MDS, resulting in NFSERR_BADSESSION/NFSERR_STALE_CLIENTID.
> 	- The server code has a bug in EXCHANGE_ID which 
> results in the long
> 	strings of NFSERR_CLID_INUSE errors. The current code does:
> 	
> 	        conf = find_confirmed_client_by_str(dname, strhashval); 
> 	        if (conf) {
> 	                if (!cmp_creds(&conf->cl_cred, 
> &rqstp->rq_cred) ||
> 	(ip_addr != conf->cl_addr)) {
> 	                        /* Client collision: send 
> nfserr_clid_inuse */
> 	                        goto out;
> 	                }
> 	
> 	                if (cmp_verf(&verf, &conf->cl_verifier)) {
> 	                        
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 	                        /* Client reboot: destroy old state */
> 	                        expire_client(conf);
> 	                        goto out_new;
> 	                }
> 	                /* router replay */
> 	                goto out;
> 	        }
> 	
> 	
> 	In the highlighted line, it should be !cmp_verf because 
> cmp_verf returns
> 	true if the verifiers are the same. 
> 	
> 	I'll work on these and send out the patches.
> 	Regards
> 	Rahul
> 	
> 	
> 	
> 	
> 	> -----Original Message-----
> 	> From: William A. (Andy) Adamson 
> [mailto:andros at citi.umich.edu ]
> 	> Sent: Wednesday, July 18, 2007 9:47 AM
> 	> To: Iyer, Rahul
> 	> Cc: pnfs at linux-nfs.org
> 	> Subject: Re: [pnfs] Patch to fix ^C crash on mount
> 	>
> 	> ok. applied to 4.1-sessions branch and merged with master
> 	>
> 	> -->Andy
> 	>
> 	>
> 	> On 7/17/07, Iyer, Rahul <Rahul.Iyer at netapp.com> wrote:
> 	>
> 	>       Hi, 
> 	>       If the mount hangs for some reason, and you hit ^C, the
> 	> client crashes as it tries to destroy a mempool and a  slab
> 	> that could be NULL. This patch check for the values before
> 	> destroying them. 
> 	>       Regards
> 	>       Rahul
> 	>
> 	>
> 	>       _______________________________________________
> 	>       pNFS mailing list
> 	>       pNFS at linux-nfs.org 
> 	>       http://linux-nfs.org/cgi-bin/mailman/listinfo/pnfs
> 	> <http://linux-nfs.org/cgi-bin/mailman/listinfo/pnfs >
> 	>
> 	>
> 	>
> 	>
> 	>
> 	
> 	
> 
> 
> 
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: 0002-Renew-lease-only-on-sequence.patch.txt
Url: http://linux-nfs.org/pipermail/pnfs/attachments/20070723/5cdc7ec2/attachment.txt 
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: 0001-Add-code-to-encode-a-0-instead-of-the-sequence-numbe.patch.txt
Url: http://linux-nfs.org/pipermail/pnfs/attachments/20070723/5cdc7ec2/attachment-0001.txt 


More information about the pNFS mailing list