From: Patrick Steinhardt Date: Thu, 29 Oct 2026 08:05:42 GMT Subject: Re: [PATCH v2 1/4] loose: use finite timeout when locking "loose-object-idx" file Message-ID: In-Reply-To: <20261029002413.3291184-2-jltobler@gmail.com> On Wed, Oct 28, 2026 at 07:24:10PM -0500, Justin Tobler wrote: > 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