Hi Duy, On Wed, 5 Jun 2019, Duy Nguyen wrote: > On Wed, Jun 5, 2019 at 6:27 PM Jeff King <peff@xxxxxxxx> wrote: > > > > 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. Good catch. I think the reason it happens again is simply that Junio picked a base commit that is older than the commit you referenced. Point in favor: Junio merged these here patches into `pu` and those test failures (as well as the StaticAnalysis issues) are gone. Thanks, Johannes > > > 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 >