diff --git a/beacon_chain/block_pools/clearance.nim b/beacon_chain/block_pools/clearance.nim index a3753bcd2..b7f4bde69 100644 --- a/beacon_chain/block_pools/clearance.nim +++ b/beacon_chain/block_pools/clearance.nim @@ -232,6 +232,10 @@ proc addRawBlock*( if blck.parent_root in quarantine.missing or blck.parent_root in quarantine.orphans: + debug "Unresolved block (parent missing or orphaned)", + orphans = quarantine.orphans.len, + missing = quarantine.missing.len + return err MissingParent # This is an unresolved block - put its parent on the missing list for now... diff --git a/beacon_chain/block_pools/quarantine.nim b/beacon_chain/block_pools/quarantine.nim index 0c58a8db6..5872b2629 100644 --- a/beacon_chain/block_pools/quarantine.nim +++ b/beacon_chain/block_pools/quarantine.nim @@ -49,4 +49,5 @@ func add*(quarantine: var QuarantineRef, dag: ChainDAGRef, quarantine.orphans[sblck.root] = sblck let parentRoot = sblck.message.parent_root - quarantine.addMissing(parentRoot) + if parentRoot notin quarantine.orphans: + quarantine.addMissing(parentRoot)