From 3a39251f79d8731df77403321e50da67952adcf8 Mon Sep 17 00:00:00 2001 From: Matthias Seitz Date: Fri, 16 Jan 2026 23:32:23 +0100 Subject: [PATCH] fix: release mutex before dropping ancestors in wait_cloned (#21146) --- crates/chain-state/src/deferred_trie.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/crates/chain-state/src/deferred_trie.rs b/crates/chain-state/src/deferred_trie.rs index c2013f9ed6..efe23a2ded 100644 --- a/crates/chain-state/src/deferred_trie.rs +++ b/crates/chain-state/src/deferred_trie.rs @@ -287,6 +287,11 @@ impl DeferredTrieData { &inputs.ancestors, ); *state = DeferredState::Ready(computed.clone()); + + // Release lock before inputs (and its ancestors) drop to avoid holding it + // while their potential last Arc refs drop (which could trigger recursive locking) + drop(state); + computed } }