Re: [PATCH v5 0/4] Optionally skip hashing index on write
- From
Derrick Stolee <derrickstolee@github.com>
- Date
- Jan 17, 2023, 14:49 UTC
- Message-ID
- <76204710-356a-2a85-9057-302e6619b9df@github.com>
- In-Reply-To
- <xmqq358cgn3s.fsf@gitster.g>
On 1/15/2023 4:31 AM, Junio C Hamano wrote:
Show 12 quoted lines
> "Derrick Stolee via GitGitGadget" <gitgitgadget@gmail.com> 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@github.com> 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@github.com> --- 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