kern/170203: [kern] piped dd' s don' t behave sanely when dealing with a fifo

David Xu listlog2011 at gmail.com
Sun Jul 29 02:56:29 UTC 2012


On 2012/7/29 9:17, David Xu wrote:
> On 2012/7/29 9:02, Garrett Cooper wrote:
>> On Sat, Jul 28, 2012 at 5:24 PM, David Xu <listlog2011 at gmail.com> wrote:
>>> On 2012/7/28 5:50, Garrett Cooper wrote:
>>>> The following reply was made to PR kern/170203; it has been noted by
>>>> GNATS.
>>>>
>>>> From: Garrett Cooper <yanegomi at gmail.com>
>>>> To: bug-followup at FreeBSD.org, yanegomi at gmail.com
>>>> Cc:
>>>> Subject: Re: kern/170203: [kern] piped dd&#39;s don&#39;t behave 
>>>> sanely
>>>> when
>>>>    dealing with a fifo
>>>> Date: Fri, 27 Jul 2012 14:47:47 -0700
>>>>
>>>>    Hi David!
>>>>        I'll give the patches you provided a shot this weekend.
>>> FIFO pipe is quite broken! Beside the bug you have reported, there is
>>> another bug,
>>> when a writer closed the pipe, select() on reader side will never 
>>> return !
>>> I am curious that so long time, nobody found the bugs, does it 
>>> because FIFO
>>> is seldom used by people ?
>>      Hmmm.. that's unfortunate. If you have a test program you can
>> provide then I can test on a 7.x variant of FreeBSD as well as FreeBSD
>> 8.3 (I'm curious as to whether or not it's fallout from recent
>> refactoring related to pipe(2), which I don't believe made it back to
>> 8.x).
>> Thanks!
>> -Garrett
>
> I have just written two quick-and-dirty test cases:
>
> http://people.freebsd.org/~davidxu/patch/fifopipe/fifo_selectread.c
> http://people.freebsd.org/~davidxu/patch/fifopipe/fifo_selectwrite.c
>
> without patch for kernel code,  a child process will print out "timeout".
>
>
I have updated patch, the patch fixed lost-notification bug for select():
http://people.freebsd.org/~davidxu/patch/fifopipe/kernel_pipe2.diff



More information about the freebsd-bugs mailing list