Date: Fri, 12 Nov 2004 09:42:11 -0800 (PST) From: Don Lewis <truckman@FreeBSD.org> To: rwatson@FreeBSD.org Cc: current@FreeBSD.org Subject: Re: Race in pipe tear-down, perhaps kqueue-related? (was: Re: Fatal trap , 12: page fault in kern/kern_mutex.c:744) Message-ID: <200411121742.iACHgBAN066957@gw.catspoiler.org> In-Reply-To: <Pine.NEB.3.96L.1041112120318.20686E-100000@fledge.watson.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 12 Nov, Robert Watson wrote: > > On Fri, 12 Nov 2004, Peter Holm wrote: > >> GENERIC HEAD from Nov 11 08:05 UTC >> http://www.holm.cc/stress/log/cons87.html > > This looks like a bug in the pipe code where-in a partially initialized > pipe is free'd due to memory allocation problems (hitting a resource > limit). pipeclose() is called when pipe_create() fails on one of the two > pipe endpoints, but it looks like pipeclose() is unprepared for the > eventuality that this is the case, as it attempts to generate wakeup > events on the pipe endpoint using pipeselwakeup(), which is not the right > thing to do while the pipe is not yet initialized. Maybe we need a > special pipeclose() tear-down path that doesn't assume the pipe has > already been fully initialized? Sounds similar to what I did in the fifo open/close code, though I seem to recall that the motivation was related to locking.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200411121742.iACHgBAN066957>