Skip to content

Commit

Permalink
core: temporary patch for panic during sidechain import ethereum#18977
Browse files Browse the repository at this point in the history
  • Loading branch information
holiman committed Feb 1, 2019
1 parent 05d2143 commit 426a0a8
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions core/blockchain.go
Original file line number Diff line number Diff line change
Expand Up @@ -980,6 +980,16 @@ func (bc *BlockChain) writeBlockWithState(block *types.Block, receipts []*types.
}
// Find the next state trie we need to commit
header := bc.GetHeaderByNumber(current - triesInMemory)
if header == nil {
// TODO! Investigate why this happens. See https://github.com/ethereum/go-ethereum/issues/18977 .
// It appears that when importing large sidechains, there's some edgecase where
// sidechain tip (S - 128) does not have a corresponding canonical block. This seems odd, since
// any sidechain larger than 128 blocks longer than the 'canon' chain _should_ already have been
// reorged into canon chain.

// For now, just break out of here, and hope that a reorg event will settle this
break
}
chosen := header.Number.Uint64()

// If we exceeded out time allowance, flush an entire trie to disk
Expand Down

0 comments on commit 426a0a8

Please sign in to comment.