git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 1/1] vreportf(): avoid buffered write in favor of unbuffered one

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Oct 29, 2019, 20:09 UTC
Message-ID
<nycvar.QRO.7.76.6.1910292101300.46@tvgsbejvaqbjf.bet>
In-Reply-To
<20191029143246.GA3683@sigill.intra.peff.net>
Hi Peff,
On Tue, 29 Oct 2019, Jeff King wrote:
Show 12 quoted lines
> On Tue, Oct 29, 2019 at 03:13:39PM +0100, Johannes Schindelin wrote:
> >
> > > I'd disagree here. Any caller sending an arbitrarily-large prefix
> > > is holding it wrong, and we'd probably want to know as soon as
> > > possible (and a BUG() is our best bet there).
> >
> > How about truncating already inside the prefix, then? It would miss
> > the entire error message... but at least it would print
> > _something_...
>
> Yeah, that might be OK. Hopefully missing the whole rest of the error
> message would cause some tests to fail.

I am not really worried about that. So far, we only have prefixes like `"fatal: "` or `"error: "`. The longest prefix is in `BUG_fl()` itself, when we have access to the file name and the line number of the triggering line, in which case it is `"BUG: <file>:<line>: "`. So as long as nobody builds a custom version of Git that includes a file whose path is insanely long, they should be fine. I am certain that Junio will never accept such a file into git.git.

Oh, and even if anybody would introduce insanely long paths into their fork of git.git, they would _still_ be safe because `BUG_fl()` limits the prefix to 256 bytes, including `NUL`.

> You could also abort() after having written if we want to be more
> BUG()-like.

As I said, this is really a part of the patch I am not at all concerned about. The prefixes are well under control, and I only addressed that potential future breakage (that I believe falls squarely into YAGNI territory) only because two reviewers seemed to be concerned.

I really believe that the care I put into the patch to safeguard against overly long prefixes is seriously overkill.

Ciao, Dscho

Previous: Jeff KingNext: Junio C Hamano
Message 8 of 34 in “Fix t5516 flakiness in Visual Studio builds”
  1. 0/1 Fix t5516 flakiness in Visual Studio buildsJohannes Schindelin via GitGitGadget, Oct 28, 2019
  2. 1/1 vreportf(): avoid buffered write in favor of unbuffered oneJohannes Schindelin via GitGitGadget, Oct 28, 2019
  3. Junio C HamanoOct 29, 2019
  4. Johannes SchindelinOct 29, 2019
  5. Jeff KingOct 29, 2019
  6. Johannes SchindelinOct 29, 2019
  7. Jeff KingOct 29, 2019
  8. Johannes SchindelinOct 29, 2019
  9. Junio C HamanoOct 30, 2019
  10. Junio C HamanoOct 29, 2019
  11. SZEDER GáborOct 29, 2019
  12. Johannes SchindelinOct 29, 2019
  13. Jeff KingOct 29, 2019
  14. Johannes SchindelinOct 29, 2019
  15. 0/1 Fix t5516 flakiness in Visual Studio buildsJohannes Schindelin via GitGitGadget, Oct 29, 2019
  16. 1/1 vreportf(): avoid relying on stdio bufferingJohannes Schindelin via GitGitGadget, Oct 29, 2019
  17. Alexandr MiloslavskiyOct 29, 2019
  18. Johannes SchindelinOct 29, 2019
  19. Jeff KingOct 29, 2019
  20. Alexandr MiloslavskiyOct 29, 2019
  21. Alexandr MiloslavskiyOct 29, 2019
  22. 0/1 Fix t5516 flakiness in Visual Studio buildsJohannes Schindelin via GitGitGadget, Oct 29, 2019
  23. 1/1 vreportf(): avoid relying on stdio bufferingJohannes Schindelin via GitGitGadget, Oct 29, 2019
  24. Jeff KingOct 29, 2019
  25. Johannes SchindelinOct 30, 2019
  26. Jeff KingOct 31, 2019
  27. Johannes SchindelinOct 31, 2019
  28. Jeff KingOct 31, 2019
  29. Johannes SchindelinNov 1, 2019
  30. Junio C HamanoOct 30, 2019
  31. Johannes SchindelinOct 30, 2019
  32. 0/1 Fix t5516 flakiness in Visual Studio buildsJohannes Schindelin via GitGitGadget, Oct 30, 2019
  33. 1/1 vreportf(): avoid relying on stdio bufferingJohannes Schindelin via GitGitGadget, Oct 30, 2019
  34. Junio C HamanoNov 2, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.