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

Re: lstat-ing delayed-filter output, was Re: playing with MSan

From
Lars Schneider <larsxschneider@gmail.com>
Date
Oct 5, 2017, 10:47 UTC
Message-ID
<5BC2435F-B7CD-4B82-B5BD-69B4195EF728@gmail.com>
In-Reply-To
<20171005034632.kzsspk7wsuk23kf2@sigill.intra.peff.net>
Show 25 quoted lines
> On 05 Oct 2017, at 05:46, Jeff King <peff@peff.net> wrote:
> 
> On Wed, Oct 04, 2017 at 08:30:05PM +0100, Thomas Gummerer wrote:
> 
>>> So I dunno. This approach is a _lot_ more convenient than trying to
>>> rebuild all the dependencies from scratch, and it runs way faster than
>>> valgrind.  It did find the cases that led to the patches in this
>>> series, and at least one more: if the lstat() at the end of
>>> entry.c:write_entry() fails, we write nonsense into the cache_entry.
>> 
>> Yeah valgrind found that one too, as I tried (and apparently failed :))
>> to explain in the cover letter.  I just haven't found the time yet to
>> actually try and go fix that one.
> 
> No, I just have poor memory. :)
> 
> The obvious fix is that we should check the return value of `lstat`, but
> the bigger question is why and when that would fail.
> 
> The case triggered by t0021 is using the new "delayed" filter mechanism.
> So at the time that write_entry() finishes, we don't actually have the
> file in the filesystem. I think we need to recognize that we got delayed
> and didn't actually check anything out, and skip that whole "if
> (state->refresh_cache)" block. It's not clear to me, though, how we tell
> the difference between the delayed and normal cases in that function.
Oh. Great catch!
> But I think this lstat could also fail if we are checking out and
> somebody else racily deletes our file. This is presumably sufficiently
> rare that I actually wonder if we should just bail with an error, so
> that the user knows something funny is going on.
That sounds good to me!

I tried to address both issues here: https://public-inbox.org/git/20171005104407.65948-1-lars.schneider@autodesk.com/

Cheers, Lars

Previous: Jeff King
Message 30 of 30 in “fixes for running the test suite with --valgrind”
  1. 0/3 fixes for running the test suite with --valgrindThomas Gummerer, Oct 3, 2017
  2. 1/3 path.c: fix uninitialized memory accessThomas Gummerer, Oct 3, 2017
  3. Jonathan NiederOct 3, 2017
  4. Jeff KingOct 3, 2017
  5. Jonathan NiederOct 3, 2017
  6. Junio C HamanoOct 4, 2017
  7. Jeff KingOct 4, 2017
  8. Thomas GummererOct 4, 2017
  9. Jonathan NiederOct 4, 2017
  10. 2/3 http-push: fix construction of hex value from pathThomas Gummerer, Oct 3, 2017
  11. Jonathan NiederOct 3, 2017
  12. Jeff KingOct 3, 2017
  13. Junio C HamanoOct 4, 2017
  14. Junio C HamanoOct 4, 2017
  15. Jeff KingOct 4, 2017
  16. Junio C HamanoOct 4, 2017
  17. 3/3 sub-process: allocate argv on the heapThomas Gummerer, Oct 3, 2017
  18. Johannes SixtOct 3, 2017
  19. Junio C HamanoOct 4, 2017
  20. Jeff KingOct 4, 2017
  21. Johannes SixtOct 4, 2017
  22. Thomas GummererOct 4, 2017
  23. Stefan BellerOct 3, 2017
  24. Jeff KingOct 3, 2017
  25. Jonathan NiederOct 3, 2017
  26. Jeff KingOct 3, 2017
  27. playing with MSan, was Re: [PATCH 0/3] fixes for running the test suite with --valgrindJeff King, Oct 4, 2017
  28. Thomas GummererOct 4, 2017
  29. lstat-ing delayed-filter output, was Re: playing with MSanJeff King, Oct 5, 2017
  30. Lars SchneiderOct 5, 2017

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.