Subject: Re: Race condition in git-bundle(1) create when ref is updated while running

From: Junio C Hamano <[email-masked]>
Date: Fri, 09 Feb 2024 09:39:38 -0800

Toon Claes <[email-masked]> writes:

> I discovered a bug in git-bundle(1) create. There is a race condition
> happening when a ref gets updated while the bundle creation process is
> running.

"--all" that tells "traverse from the tip of all the refs" to any
rev-list family of commands (like log and bundle) eventually boils
down to opendir("refs/...") followed by readdir(), and if somebody
creates or deletes files while you are reading in such a loop,
readdir() may appear to skip an entry, which is understandable.
Even "git for-each-ref" would race with a ref update (which involves
removing a file and then creating another file at the same path), I
would think.  IOW, I do not think this is limited to "git bundle".