Problem
The v6.4.0 release-candidate verifier observed ExpiringSet concurrent safety fail with ROOT_SET_REF_UPDATE_FAILED. Immediate rerun and 12 focused real-Git repetitions passed, proving nondeterminism.
GitRefAdapter.updateRef() can receive a structured plumbing error with details.code: GIT_REPOSITORY_LOCKED when concurrent git update-ref --no-deref operations overlap at lock-file timing. RootSetPersistence.#isConflict() recognizes ordinary compare-and-swap stderr (but expected / reference already exists) but not this exact structured lock shape, so RootSet never executes its bounded conflict retry.
Required Fix
- Recognize
GIT_REPOSITORY_LOCKED only when structured command arguments prove the failed operation was update-ref --no-deref for the exact managed RootSet ref.
- Preserve terminal behavior for unrelated repository locks and non-update-ref failures.
- Add deterministic unit coverage for both classification boundaries.
- Rerun the focused real-Git stress proof and full v6.4.0 release verifier.
Release Evidence
Blocks the v6.4.0 release candidate until fixed and reviewed.
Problem
The v6.4.0 release-candidate verifier observed
ExpiringSet concurrent safetyfail withROOT_SET_REF_UPDATE_FAILED. Immediate rerun and 12 focused real-Git repetitions passed, proving nondeterminism.GitRefAdapter.updateRef()can receive a structured plumbing error withdetails.code: GIT_REPOSITORY_LOCKEDwhen concurrentgit update-ref --no-derefoperations overlap at lock-file timing.RootSetPersistence.#isConflict()recognizes ordinary compare-and-swap stderr (but expected/reference already exists) but not this exact structured lock shape, so RootSet never executes its bounded conflict retry.Required Fix
GIT_REPOSITORY_LOCKEDonly when structured command arguments prove the failed operation wasupdate-ref --no-dereffor the exact managed RootSet ref.Release Evidence
Blocks the v6.4.0 release candidate until fixed and reviewed.