Subject: bug#77800: grep-3.12: write-error-msg test failure on fedora rawhide (f43)

From: Grisha Levit <[email-masked]>
Date: Fri, 18 Apr 2025 01:35:40 -0400

On Fri, Apr 18, 2025, 01:18 Jim Meyering <[email-masked]> wrote:
>
> On Tue, Apr 15, 2025 at 9:17 PM Jim Meyering <[email-masked]> wrote:
> ...
> > We're going to have to revise that code.
> > The difference I see is that before rawhide, that fclose would fail.
> > It's perfectly fine for fclose to succeed in this case, as now happens
> > on rawhide (because with 4k BUFSIZ, the fclose wrote nothing -- the
> > preceding 4096-byte write is what failed).
> >
> > Here's a better patch: (technically, we could factor it somewhat, but
> > readability would suffer disproportionately)
>
> I didn't take the time to find a precise commit, but this bug predates
> the move from closeout.c to gnulib's close-stdout.c in 2006. As I
> write this, I'm installing Fedora 42.
> I'll probably push the attached to gnulib tomorrow:

> Exposed via Fedora 42's new glibc vs grep's --help being precisely
> 4096 bytes.

AFAICT this is not related to F42 or new glibc, it's just longer help
text in grep-3.12 + Fedora patch making it even longer.  But you should
see the same behavior on existing systems with e.g.:

    $ { env printf %4095s; env printf %4096s; } > /dev/full
    printf: write error: Broken pipe
    printf: write error