Skip to content
Discussion options

You must be logged in to vote

Confirmed, and your diagnosis was exactly right. Thank you — the sorted-prefix detail is what made this findable, and the isolated reproduction against a stock release saved a lot of guessing.

Fix in #13195.

What was happening

HistoryRepo::compose() named its scratch index after the process id alone, and the watcher runs two compositions in one process: it saves checkpoints on its own thread while the synchronization it started plans on a blocking task. Those took different locks — capture the operation lock, sync the sync lock — so neither excluded the other, and both composed into the same file.

compose() resets the index and then inserts overlays one git invocation at a time. When the …

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by moniquelive
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
2 participants