Re: What's cooking in git.git (Nov 2025, #10; Sun, 30)
- From
Jeff King <peff@peff.net>
- Date
- Dec 1, 2025, 11:43 UTC
- Message-ID
- <20251201114336.GA1559453@coredump.intra.peff.net>
- In-Reply-To
- <xmqq5xaqbxmk.fsf@gitster.g>
On Sun, Nov 30, 2025 at 09:05:07PM -0800, Junio C Hamano wrote:
Show 15 quoted lines
> * ar/submodule-gitdir-tweak (2025-11-19) 7 commits > - meson/Makefile: allow setting submodule encoding at build time > - submodule: use hashed name for gitdir > - submodule: fix case-folding gitdir filesystem colisions > - submodule: add extension to encode gitdir paths > - submodule: always validate gitdirs inside submodule_name_to_gitdir > - builtin/credential-store: move is_rfc3986_unreserved to url.[ch] > - submodule--helper: use submodule_name_to_gitdir in add_submodule > > Avoid local submodule repository directory paths overlapping with > each other by encoding submodule names before using them as path > components. > > Will merge to 'next'? > source: <20251119211030.2008441-1-adrian.ratiu@collabora.com>
This topic seems to introduce a race in t7450. Running:
make && (cd t && ./t7450-bad-git-dotfiles.sh --stress-limit=50)
usually fails within 10 or so iterations, whereas without this topic I can reliably get through 50 iterations (since it's racy, nothing is for sure, but it seems to trigger pretty easily).
The failing test is the parallel one added by 9cf8547320 (clone: prevent clashing git dirs when cloning submodule in parallel, 2024-01-28), which is making sure we catch nested modules during a parallel checkout. The race seems to be in Git itself, and not an artifact of the test (so this isn't a race we want to wave away, but probably a real bug, perhaps even one with security implications, according to that commit).
Bisection points to 099fe37397 (submodule: always validate gitdirs inside submodule_name_to_gitdir, 2025-11-19). Which seems plausible, given that it tries to move those same checks from 9cf8547320 around.
It's also possible that the race was always there and this simply makes it worse, but I wasn't ever able to trigger it on a pre-099fe37397 commit.
-Peff