Date: Thu, 27 Aug 2009 08:27:03 -0400 From: John Baldwin <jhb@freebsd.org> To: freebsd-current@freebsd.org Cc: pluknet <pluknet@gmail.com>, Robert Watson <rwatson@freebsd.org> Subject: Re: LOR: so_snd_sx vs bufwait Message-ID: <200908270827.03670.jhb@freebsd.org> In-Reply-To: <alpine.BSF.2.00.0908271233080.61512@fledge.watson.org> References: <a31046fc0908270402l6718ce3ak5d079b944c448679@mail.gmail.com> <alpine.BSF.2.00.0908271233080.61512@fledge.watson.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 27 August 2009 7:34:03 am Robert Watson wrote: > > On Thu, 27 Aug 2009, pluknet wrote: > > > This is a FreeBSD 9.0-CURRENT i386. The LOR was caught via stress2 suite. I > > guess sblock() (uipc_sockbuf.c:148 here) was called from sosend_generic() > > (which is at line uipc_socket.c:1436). > > This is probably the "right" order, as opposed to the wrong one. Could you > look at witness's dynamic order information in DDB or via sysctl and see what > the "other" order is? Alternatively, hard-code this harder in subr_witness > and then the other order will be reported instead. I suspect the NFS client will perform socket I/O while holding a buffer which would give the other order. I'm not sure you can trigger a deadlock as a socket used for NFS is never read/written to directly by userland however. -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200908270827.03670.jhb>