Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 29 Jul 2012 09:17:54 +0800
From:      David Xu <listlog2011@gmail.com>
To:        Garrett Cooper <yanegomi@gmail.com>
Cc:        freebsd-bugs@freebsd.org, davidxu@freebsd.org
Subject:   Re: kern/170203: [kern] piped dd&#39; s don&#39; t behave sanely when dealing with a fifo
Message-ID:  <50148F42.20105@gmail.com>
In-Reply-To: <CAGH67wQYCf6N0hF4Hru63snCxVoPjBmLgjyPkVBRT7q7%2BgcqbQ@mail.gmail.com>
References:  <201207272150.q6RLo9ew012879@freefall.freebsd.org> <501482CD.6050708@gmail.com> <CAGH67wQYCf6N0hF4Hru63snCxVoPjBmLgjyPkVBRT7q7%2BgcqbQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2012/7/29 9:02, Garrett Cooper wrote:
> On Sat, Jul 28, 2012 at 5:24 PM, David Xu <listlog2011@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@gmail.com>
>>> To: bug-followup@FreeBSD.org, yanegomi@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".





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