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

Re: [RFC/PATCH 0/5] Fix fetch regression with transport helpers

From
Duy Nguyen <pclouds@gmail.com>
Date
Jun 5, 2019, 12:22 UTC
Message-ID
<CACsJy8DKWoerME5BykVmihyX2eX10YTO0BNyVc7MGjwp_Shg2Q@mail.gmail.com>
In-Reply-To
<20190605112713.GA14027@sigill.intra.peff.net>
On Wed, Jun 5, 2019 at 6:27 PM Jeff King <peff@peff.net> wrote:
Show 39 quoted lines
>
> On Wed, Jun 05, 2019 at 10:12:12AM +0200, Johannes Schindelin wrote:
>
> > This fails on macOS, in t5601, both in our osx-clang and osx-gcc jobs, as
> > well as in the StaticAnalysis job. For details, see
> > https://dev.azure.com/gitgitgadget/git/_build/results?buildId=10206
>
> Hmm. I'm having a hard time seeing why (and I can't seem to reproduce it
> locally on a case-insensitive HFS+ filesystem under Linux).
>
> In particular, if the problem is here:
>
> > expecting success:
> >       grep X icasefs/warning &&
> >       grep x icasefs/warning &&
> >       test_i18ngrep "the following paths have collided" icasefs/warning
> >
> > ++ grep X icasefs/warning
> > error: last command exited with $?=1
> > not ok 99 - colliding file detection
>
> then that implies it has to do with the checkout phase, which Felipe's
> patch doesn't touch. Later in the log we see the actual file contents
> (I'm confused as to how this gets here; it looks like debugging bits
> that were added after the main script?):
>
>   2019-06-05T07:58:37.7961890Z Cloning into 'bogus'...
>   2019-06-05T07:58:37.7962430Z done.
>   2019-06-05T07:58:37.7963360Z warning: the following paths have collided (e.g. case-sensitive paths
>   2019-06-05T07:58:37.7964300Z on a case-insensitive filesystem) and only one from the same
>   2019-06-05T07:58:37.7964880Z colliding group is in the working tree:
>   2019-06-05T07:58:37.7965290Z
>   2019-06-05T07:58:37.7966250Z   'x'
>
> whereas a succeeding test expects us to mention both 'x' and 'X'.
>
> So we _did_ find the collision, but somehow 'X' was not reported.
> Looking at the code, I'm not even sure how that could happen. Given that
> this process does involve looking at stat data, it makes me wonder if

It does use stat data in mark_colliding_entries() if core.checkStat is false. I think on MacOS it's actually true.

I vaguely recall seeing just one 'x' once. I think last time I had a problem with truncating st_ino, but that should be fixed in e66ceca94b (clone: fix colliding file detection on APFS, 2018-11-20). So no idea how this happens again.

> there could be some raciness involved. But again, I'm scratching my head
> as to how exactly, and I couldn't reproduce it under load or with some
> carefully inserted sleep() calls.
-- 
Duy
Previous: Jeff KingNext: Johannes Schindelin
Message 15 of 18 in “Fix fetch regression with transport helpers”
  1. 0/5 Fix fetch regression with transport helpersFelipe Contreras, Jun 4, 2019
  2. 1/5 t5801 (remote-helpers): cleanup refspec stuffFelipe Contreras, Jun 4, 2019
  3. Jeff KingJun 4, 2019
  4. 2/5 t5801 (remote-helpers): add test to fetch tagsFelipe Contreras, Jun 4, 2019
  5. Jeff KingJun 4, 2019
  6. 3/5 fetch: trivial cleanupFelipe Contreras, Jun 4, 2019
  7. 5/5 fetch: fix regression with transport helpersFelipe Contreras, Jun 4, 2019
  8. Jeff KingJun 4, 2019
  9. Junio C HamanoJun 4, 2019
  10. 4/5 fetch: make the code more understandableFelipe Contreras, Jun 4, 2019
  11. Jeff KingJun 4, 2019
  12. Felipe ContrerasJun 4, 2019
  13. Johannes SchindelinJun 5, 2019
  14. Jeff KingJun 5, 2019
  15. Duy NguyenJun 5, 2019
  16. Johannes SchindelinJun 6, 2019
  17. Junio C HamanoJun 6, 2019
  18. CI builds on GitGitGadget, was Re: [RFC/PATCH 0/5] Fix fetch regression with transport helpersJohannes Schindelin, Jun 7, 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.