From 0b362e320e518f180582138d3c538b6ee549cef1 Mon Sep 17 00:00:00 2001 From: Samuel Moelius Date: Sun, 22 Jun 2025 21:38:20 -0400 Subject: [PATCH] Fix potential deadlock in `CacheState::lock` --- src/cargo/util/cache_lock.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/cargo/util/cache_lock.rs b/src/cargo/util/cache_lock.rs index 7d019d183e6..afd06c998b8 100644 --- a/src/cargo/util/cache_lock.rs +++ b/src/cargo/util/cache_lock.rs @@ -408,7 +408,10 @@ impl CacheState { .lock_exclusive(gctx, DOWNLOAD_EXCLUSIVE_DESCR, blocking) { Ok(LockAcquired) => {} - Ok(WouldBlock) => return Ok(WouldBlock), + Ok(WouldBlock) => { + self.mutate_lock.decrement(); + return Ok(WouldBlock); + } Err(e) => { self.mutate_lock.decrement(); return Err(e);