On 1/15/2023 4:31 AM, Junio C Hamano wrote: > "Derrick Stolee via GitGitGadget" <gitgitgadget@xxxxxxxxx> writes: > >> Writing the index is a critical action that takes place in multiple Git >> commands. The recent performance improvements available with the sparse >> index show how often the I/O costs around the index can affect different Git >> commands, although reading the index takes place more often than a write. > > https://github.com/git/git/actions/runs/3922482355/jobs/6705454550#step:4:2006 > > shows that all other platforms passed but osx-gcc failed one of the > tests this series added. Could it be that there is something racy > about the test (1006.6 if I am not mistaken)? Yes, you are right. The patch below fixes the problem. Sorry about that! -Stolee -- >8 -- >From 6827205f979ecfa66f4f9edabfb247cff05f0605 Mon Sep 17 00:00:00 2001 From: Derrick Stolee <derrickstolee@xxxxxxxxxx> Date: Tue, 17 Jan 2023 09:46:04 -0500 Subject: [PATCH] t1600: fix racy index.skipHash test The test 1600.6 can fail under --stress due to mtime collisions. Most of the tests include a removal of the index file to guarantee that the index is updated. However, the submodule test addded in ee1f0c242ef (read-cache: add index.skipHash config option, 2023-01-06) did not include this removal. Thus, on rare occasions, the test can fail because the index still has a non-null trailing hash, as detected by the helper added in da9acde14ed (test-lib-functions: add helper for trailing hash, 2023-01-06). By removing the submodule's index before the 'git -C sub add a' command, we guarantee that the index is rewritten with the new index.skipHash config option. Signed-off-by: Derrick Stolee <derrickstolee@xxxxxxxxxx> --- t/t1600-index.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/t/t1600-index.sh b/t/t1600-index.sh index 0ebbae13058..9368d82f7d7 100755 --- a/t/t1600-index.sh +++ b/t/t1600-index.sh @@ -88,6 +88,7 @@ test_expect_success 'index.skipHash config option' ' git -c protocol.file.allow=always submodule add ./ sub && git config index.skipHash false && git -C sub config index.skipHash true && + rm -f .git/modules/sub/index && >sub/file && git -C sub add a && test_trailing_hash .git/modules/sub/index >hash && -- 2.38.0.vfs.0.0