Re: [PATCH v2 1/4] loose: use finite timeout when locking "loose-object-idx" file
- From
Patrick Steinhardt <ps@pks.im>
- Date
- Oct 29, 2026, 08:05 UTC
- Message-ID
- <auL-Ta8DTicSLW7W@pks.im>
- In-Reply-To
- <20261029002413.3291184-2-jltobler@gmail.com>
On Wed, Oct 28, 2026 at 07:24:10PM -0500, Justin Tobler wrote:
Show 12 quoted lines
> Loose object index file writers first attempt to acquire a lock via > `repo_hold_lock_file_for_update_timeout()` and specify a timeout value > of -1. With a negative timeout value, the lock acquisition retries > indefinitely while the lockfile still exists. If a process dies while > holding the lock and leaves a stale lockfile behind, every subsequent > writer of the mapping file hangs forever instead of reporting an error. > > Introduce LOOSE_OBJECT_IDX_LOCK_TIMEOUT_MS to set the timeout to 1000ms > and use it for all callers that lock a "loose-object-idx" file. A value > of 1000ms matches the default timeout used for "core.packedRefsTimeout" > and should provide concurrent writers sufficient time to acquire the > lock.
Right, aborting eventually is way better compared to blocking indefinitely. Ideally we should also make this setting configurable. But I think it's fine to skip that for now and fix that at a later point in time.
Patrick