From 5b9c904d1fda7aac477215a112c57a64e1c27c64 Mon Sep 17 00:00:00 2001 From: zhangsoledad <787953403@qq.com> Date: Wed, 15 Mar 2023 15:54:57 +0800 Subject: [PATCH] fix: tx-pool may panic after detached --- tx-pool/src/component/commit_txs_scanner.rs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/tx-pool/src/component/commit_txs_scanner.rs b/tx-pool/src/component/commit_txs_scanner.rs index 9ef4fe6a32..8f97432ae8 100644 --- a/tx-pool/src/component/commit_txs_scanner.rs +++ b/tx-pool/src/component/commit_txs_scanner.rs @@ -200,14 +200,16 @@ impl<'a> CommitTxsScanner<'a> { .iter() .filter(|id| !already_added.contains_key(id)) { - let mut desc = self.modified_entries.remove(desc_id).unwrap_or_else(|| { - self.proposed_pool - .get(desc_id) - .map(ToOwned::to_owned) - .expect("pool consistent") - }); - desc.sub_entry_weight(entry); - self.modified_entries.insert(desc); + // Note: since https://github.com/nervosnetwork/ckb/pull/3706 + // calc_descendants() may not consistent + if let Some(mut desc) = self + .modified_entries + .remove(desc_id) + .or_else(|| self.proposed_pool.get(desc_id).cloned()) + { + desc.sub_entry_weight(entry); + self.modified_entries.insert(desc); + } } } }