Date: Mon, 23 Jul 2001 18:46:53 +0100 From: Ian Dowse <iedowse@maths.tcd.ie> To: Matt Dillon <dillon@earth.backplane.com> Cc: Maxim Sobolev <sobomax@FreeBSD.ORG>, current@FreeBSD.ORG Subject: Re: NFS client unable to recover from server crash Message-ID: <200107231846.aa35761@salmon.maths.tcd.ie> In-Reply-To: Your message of "Mon, 23 Jul 2001 09:48:21 PDT." <200107231648.f6NGmLP17709@earth.backplane.com>
next in thread | previous in thread | raw e-mail | index | archive | help
In message <200107231648.f6NGmLP17709@earth.backplane.com>, Matt Dillon writes: > Ian, please don't do this. The whole point of having an uninterruptable > mount is so the client can survive a server reboot or network failure. > Doing this destroys uninterruptable semantics. Firstly, I have no intention of committing this patch anytime soon, but I think you are mistaken in what it does. Unless I messed up, it will never allow "uninterruptible" mounts to be interrupted by signals or to time out. I set the socket timeout to 10 seconds, but that will have no effect because the code will simply loop around and retry again. It is nfs_sigintr() that detects signals, and it returns immediately unless the NFSMNT_INT mount flag is set. Similarly, the request only times out if rep->r_rexmit >= r_retry, but unless it is a "soft" nfs mount, r_rexmit is clamped at NFS_MAXREXMIT, and r_retry is set to NFS_MAXREXMIT + 1, so this can never happen. The only effect of changing that timeout value (again assuming I have not misread the code) is to allow any request that does get marked R_SOFTTERM to time out within a finite period. For hard mounts, the _only_ way that this can happen is via the new nfs_nmcancelreqs() which is called when you do a forced unmount. No, I haven't gone mad and decided to make all NFS mounts soft to "fix" all NFS problems :-) Ian To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi? <200107231846.aa35761>