Re: Race in pipe tear-down, perhaps kqueue-related? (was: Re: Fatal trap , 12: page fault in kern/kern_mutex.c:744)

From: Don Lewis <truckman_at_FreeBSD.org>
Date: Fri, 12 Nov 2004 09:42:11 -0800 (PST)
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.
Received on Fri Nov 12 2004 - 16:42:22 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:22 UTC