Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 25 May 2006 17:00:42 GMT
From:      Gea-Suan Lin <gslin@csie.nctu.edu.tw>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: bin/97768: NFS rpc.lockd will die automatically
Message-ID:  <200605251700.k4PH0g8x064355@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/97768; it has been noted by GNATS.

From: Gea-Suan Lin <gslin@csie.nctu.edu.tw>
To: Craig Rodrigues <rodrigc@crodrigues.org>
Cc: Gea-Suan Lin <gslin@csie.nctu.edu.tw>, bug-followup@freebsd.org
Subject: Re: bin/97768: NFS rpc.lockd will die automatically
Date: Fri, 26 May 2006 00:58:16 +0800

 Hi,
 
 After this patch, they look good now.
 
 Is this some kind of race condition ? I mean, between kevent() returning
 "ok, you can write" and rpc.lockd calling write(), the connection fd=8
 disappeared, then write() cause SIGPIPE.
 
 On Wed, May 24, 2006 at 12:35:43AM -0400, Craig Rodrigues wrote:
 > On Wed, May 24, 2006 at 12:19:48PM +0800, Gea-Suan Lin wrote:
 > > >Description:
 > > - rpc.lockd (uid = daemon) will die automatically on FreeBSD
 > >   6.0-RELEASE-p7, this is ktrace/kdump log:
 > > 
 > >  58205 rpc.lockd CALL  sendto(0x7,0xbfbfd940,0x48,0,0,0)
 > >  58205 rpc.lockd GIO   fd 7 wrote 72 bytes
 > >        "<27>May 24 03:02:10 rpc.lockd: Unable to return result to 140.113.209.21"
 > >  58205 rpc.lockd RET   sendto 72/0x48
 > >  58205 rpc.lockd CALL  write(0x8,0xbfbfe680,0x20)
 > >  58205 rpc.lockd RET   write -1 errno 32 Broken pipe
 > >  58205 rpc.lockd PSIG  SIGPIPE SIG_DFL
 > 
 > 
 > Does this patch to rpc.lockd help?
 > 
 > ===================================================================
 > RCS file: /home/ncvs/src/usr.sbin/rpc.lockd/kern.c,v
 > retrieving revision 1.17
 > diff -u -u -r1.17 kern.c
 > --- kern.c      17 Nov 2005 12:19:19 -0000      1.17
 > +++ kern.c      24 May 2006 04:25:05 -0000
 > @@ -151,6 +151,7 @@
 > 
 >         signal(SIGHUP, (sig_t)client_cleanup);
 >         signal(SIGTERM, (sig_t)client_cleanup);
 > +       signal(SIGPIPE, SIG_IGN);
 > 
 >         /* Setup. */
 >         (void)time(&owner.tod);
 
 -- 
 * Gea-Suan Lin  (public key: Using https://keyserver.pgp.com/ to search)
 * If you cannot convince them, confuse them.           -- Harry S Truman



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200605251700.k4PH0g8x064355>