besu: Besu bonsai trie mainnet sync fails
Description
Fresh bonsai trie mainnet sync fails with “World state root does not match expected value”
execution_1 | 2021-10-12 10:43:11.730+02:00 | nioEventLoopGroup-3-4 | INFO | SyncTargetManager | Found common ancestor with peer Peer 0x7bb206354dd02618aa... at block 13387913
execution_1 | 2021-10-12 10:43:21.968+02:00 | EthScheduler-Services-101 (importBlock) | ERROR | PipelineChainDownloader | Chain download failed. Restarting after short delay.
execution_1 | java.util.concurrent.CompletionException: java.lang.RuntimeException: World State Root does not match expected value, header 0x47f8ae0d9dc85b86fa2ecb4111d49a5ef9b575d79b69b75267706e8ba3af24e2 calculated 0xfb65b3878aac74cef5d561338cf2562840b54c619a1a0c5f3f7904a583377ea5
execution_1 | at java.base/java.util.concurrent.CompletableFuture.encodeRelay(Unknown Source)
execution_1 | at java.base/java.util.concurrent.CompletableFuture.completeRelay(Unknown Source)
execution_1 | at java.base/java.util.concurrent.CompletableFuture$UniRelay.tryFire(Unknown Source)
execution_1 | at java.base/java.util.concurrent.CompletableFuture.postComplete(Unknown Source)
execution_1 | at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(Unknown Source)
execution_1 | at org.hyperledger.besu.services.pipeline.Pipeline.abort(Pipeline.java:180)
execution_1 | at org.hyperledger.besu.services.pipeline.Pipeline.lambda$runWithErrorHandling$3(Pipeline.java:159)
execution_1 | at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
execution_1 | at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
execution_1 | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
execution_1 | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
execution_1 | at java.base/java.lang.Thread.run(Unknown Source)
execution_1 | Caused by: java.lang.RuntimeException: World State Root does not match expected value, header 0x47f8ae0d9dc85b86fa2ecb4111d49a5ef9b575d79b69b75267706e8ba3af24e2 calculated 0xfb65b3878aac74cef5d561338cf2562840b54c619a1a0c5f3f7904a583377ea5
execution_1 | at org.hyperledger.besu.ethereum.bonsai.BonsaiPersistedWorldState.persist(BonsaiPersistedWorldState.java:264)
execution_1 | at org.hyperledger.besu.ethereum.mainnet.AbstractBlockProcessor.processBlock(AbstractBlockProcessor.java:202)
execution_1 | at org.hyperledger.besu.ethereum.mainnet.AbstractBlockProcessor.processBlock(AbstractBlockProcessor.java:42)
execution_1 | at org.hyperledger.besu.ethereum.mainnet.BlockProcessor.processBlock(BlockProcessor.java:75)
execution_1 | at org.hyperledger.besu.ethereum.MainnetBlockValidator.processBlock(MainnetBlockValidator.java:150)
execution_1 | at org.hyperledger.besu.ethereum.MainnetBlockValidator.validateAndProcessBlock(MainnetBlockValidator.java:108)
execution_1 | at org.hyperledger.besu.ethereum.mainnet.MainnetBlockImporter.importBlock(MainnetBlockImporter.java:45)
execution_1 | at org.hyperledger.besu.ethereum.core.BlockImporter.importBlock(BlockImporter.java:44)
execution_1 | at org.hyperledger.besu.ethereum.eth.sync.fullsync.FullImportBlockStep.accept(FullImportBlockStep.java:54)
execution_1 | at org.hyperledger.besu.ethereum.eth.sync.fullsync.FullImportBlockStep.accept(FullImportBlockStep.java:31)
execution_1 | at org.hyperledger.besu.services.pipeline.CompleterStage.run(CompleterStage.java:37)
execution_1 | at org.hyperledger.besu.services.pipeline.Pipeline.lambda$runWithErrorHandling$3(Pipeline.java:152)
Versions (Add all that apply)
- Software version:
besu/v21.10.0-RC1/linux-x86_64/adoptopenjdk-java-11
- OS Name & Version: Ubuntu 20.04
- Docker Version: 20.10.7
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Comments: 16 (6 by maintainers)
We are testing a potential fix : https://github.com/hyperledger/besu/pull/2934
ok I think the problem comes from the fastsync and in particular the fact that there are several retry of the fastsync. I think in the database there must be the old fasstync data which are not completely flushed. I’ll try to reproduce it locally to investigate.
Side note: In that test build,
--rpc-ws-apis WEB3,ETH,NET
works but--rpc-ws-apis web3,eth,net
fails withInvalid value for option '--rpc-ws-apis'
I started a fresh sync with that test build.
I’m having the same problem with
besu/v21.10.0-RC2/linux-x86_64/adoptopenjdk-java-11
.besu.log.txt