Date: Thu, 17 Dec 1998 14:10:00 -0800 (PST) From: Alfred Perlstein <bright@hotjobs.com> To: freebsd-bugs@FreeBSD.ORG Subject: Re: kern/8732: nfs mounts with 'intr' can cause system hang Message-ID: <199812172210.OAA15605@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/8732; it has been noted by GNATS. From: Alfred Perlstein <bright@hotjobs.com> To: "David G. Andersen" <danderse@cs.utah.edu> Cc: freebsd-gnats-submit@freebsd.org Subject: Re: kern/8732: nfs mounts with 'intr' can cause system hang Date: Thu, 17 Dec 1998 17:07:10 -0500 (EST) On Thu, 17 Dec 1998, David G. Andersen wrote: > Okay.. hrm. Want to try a different one? > > Index: vfs_subr.c > =================================================================== > RCS file: /n/marker/usr/lsrc/FreeBSD/CVS/src/sys/kern/vfs_subr.c,v > retrieving revision 1.174 > diff -r1.174 vfs_subr.c > 582,584c582,587 > < tsleep((caddr_t)&vp->v_numoutput, > < slpflag | (PRIBIO + 1), > < "vinvlbuf", slptimeo); > --- > > if (error = tsleep((caddr_t)&vp->v_numoutput, > > slpflag | (PRIBIO + 1), > > "vinvlbuf", slptimeo)) { > > splx(s); > > return (error); > > } > > > (Instead of just checking for EINTR, it returns on any error) > > I managed to replicate the crash you had with my first patch, but it > took a lot more pounding for some reason. I haven't managed to crash > with this one yet, but who knows. > > -Dave ok, A & B A) ok, what if tsleep returns ERESTART? will the kernel allow the process to exit the kernel call? or will it loop retrying the syscall, and not allowing the process to return to userland? unless you say yes, i'll be trying the patch tonight (unplugging the ethernet to simulate an interrupted mount, then sending a ^C) B) well, um, i think i just got it. Basically a ^C will make tsleep return EINTR which will allow the process back to userland, but perhaps a SIGIO or some other call will make tsleep give ERESTART which will restart the IO? is it A or B or ??? thanks, -Alfred To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199812172210.OAA15605>