diff --git a/substrate/client/db/src/lib.rs b/substrate/client/db/src/lib.rs index 29e17a5f0c7de787168569636311c9eb7968c97d..be569194972cc80a1f26b9505a9d256f02381769 100644 --- a/substrate/client/db/src/lib.rs +++ b/substrate/client/db/src/lib.rs @@ -1149,6 +1149,7 @@ impl<Block: BlockT> Backend<Block> { changes_trie_config_update, changes_trie_cache_ops, )?); + self.state_usage.merge_sm(operation.old_state.usage_info()); let cache = operation.old_state.release(); // release state reference so that it can be finalized if finalized { @@ -1619,6 +1620,7 @@ impl<Block: BlockT> sc_client_api::backend::Backend<Block> for Backend<Block> { } fn destroy_state(&self, state: Self::State) -> ClientResult<()> { + self.state_usage.merge_sm(state.usage_info()); if let Some(hash) = state.cache.parent_hash.clone() { let is_best = self.blockchain.meta.read().best_hash == hash; state.release().sync_cache(&[], &[], vec![], vec![], None, None, is_best);