[Toybox] [PATCH] sed: fix endless loop in "b loop" test.

Rob Landley rob at landley.net
Wed Feb 13 08:03:13 PST 2019


On 2/13/19 9:45 AM, enh wrote:
> 
> 
> On Wed, Feb 13, 2019, 03:53 Rob Landley <rob at landley.net
> <mailto:rob at landley.net> wrote:
> 
>     On 2/12/19 11:48 PM, enh via Toybox wrote:
>     > Very few places actually check for errors from emit, and I actually see
>     > the same endless loop from "sed (GNU sed) 4.4" on current Debian, so I'm
>     > not sure this isn't Broken As Designed, but an endless loop spewing
>     > "short write" (or saying nothing, in the case of GNU sed) really doesn't
>     > feel like useful behavior in face of EPIPE, which really isn't going to
>     > fix itself. Certainly not being able to run the sed tests to completion
>     > is pretty annoying --- which is why, unless we remove this test as
>     > invalid, we should probably also add a SKIP_HOST=1 to the "b loop" test.
>     >
>     > Note that even with this fix you'll see the error twice:
>     >
>     >   sed: short write: Broken pipe
>     >   sed: short write: Broken pipe
> 
>     I'm not seeing this error, make test_sed currently runs to completion
>     successfully for me? (Applied anyway, but how do I trigger what you're seeing in
>     toybox? We don't seem to have that test in sed.tests?)
> 
> 
> Yeah, you do, it's the one called "b loop". I mentioned it on the list when it
> started happening. It's been completely reproducible for me on Debian for months
> now, but it did seem to come from nowhere. 
> 
> As I discovered last night, it's actually affecting GNU sed too, which strace
> shows just ignoring EPIPE from write(2) over and over. What happens for you
> (before this patch)? Death by SIGPIPE? 

PASS: sed prodigaler newline
PASS: sed aci
PASS: sed b loop
PASS: sed b skip
PASS: sed b end

I suspect a kernel upgrade changed tty/signal behavior? Still running Ubuntu
14.04. (I know, I know...)

Rob



More information about the Toybox mailing list