You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hey,
I've been fuzzing yolo with interesting test vectors and came across the following crasher.
The problem is, that the index of the discount table is too long, so an index out of bounds exception is thrown when you call BLS12_G1MULTIEXP (probably the same with BLS12_G2MULTIEXP).
2020-06-22 13:33:29.851+02:00 | nioEventLoopGroup-3-7 | INFO | SyncTargetManager | Found common ancestor with peer 0x5184686aff39fac76a... at block 45119
2020-06-22 13:33:29.926+02:00 | EthScheduler-Services-30 (importBlock) | ERROR | PipelineChainDownloader | Chain download failed. Restarting after short delay.
java.util.concurrent.CompletionException: java.lang.ArrayIndexOutOfBoundsException: Index 129 out of bounds for length 129
at java.util.concurrent.CompletableFuture.encodeRelay(CompletableFuture.java:367) ~[?:?]
at java.util.concurrent.CompletableFuture.completeRelay(CompletableFuture.java:376) ~[?:?]
at java.util.concurrent.CompletableFuture$UniRelay.tryFire(CompletableFuture.java:1093) ~[?:?]
at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) ~[?:?]
at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2152) ~[?:?]
at org.hyperledger.besu.services.pipeline.Pipeline.abort(Pipeline.java:152) ~[besu-pipeline-1.4.7-SNAPSHOT.jar:1.4.7-dev-4523d591]
at org.hyperledger.besu.services.pipeline.Pipeline.lambda$runWithErrorHandling$3(Pipeline.java:134) ~[besu-pipeline-1.4.7-SNAPSHOT.jar:1.4.7-dev-4523d591]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) [?:?]
at java.lang.Thread.run(Thread.java:832) [?:?]
Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 129 out of bounds for length 129
at org.hyperledger.besu.ethereum.mainnet.precompiles.BLS12G1MultiExpPrecompiledContract.gasRequirement(BLS12G1MultiExpPrecompiledContract.java:35) ~[besu-core-1.4.7-SNAPSHOT.jar:1.4.7-dev-4523d591]
at org.hyperledger.besu.ethereum.mainnet.MainnetMessageCallProcessor.executePrecompile(MainnetMessageCallProcessor.java:122) ~[besu-core-1.4.7-SNAPSHOT.jar:1.4.7-dev-4523d591]
at org.hyperledger.besu.ethereum.mainnet.MainnetMessageCallProcessor.start(MainnetMessageCallProcessor.java:61) ~[besu-core-1.4.7-SNAPSHOT.jar:1.4.7-dev-4523d591]
at org.hyperledger.besu.ethereum.mainnet.AbstractMessageProcessor.process(AbstractMessageProcessor.java:167) ~[besu-core-1.4.7-SNAPSHOT.jar:1.4.7-dev-4523d591]
at org.hyperledger.besu.ethereum.mainnet.MainnetTransactionProcessor.process(MainnetTransactionProcessor.java:407) ~[besu-core-1.4.7-SNAPSHOT.jar:1.4.7-dev-4523d591]
at org.hyperledger.besu.ethereum.mainnet.MainnetTransactionProcessor.processTransaction(MainnetTransactionProcessor.java:330) ~[besu-core-1.4.7-SNAPSHOT.jar:1.4.7-dev-4523d591]
at org.hyperledger.besu.ethereum.mainnet.MainnetTransactionProcessor.processTransaction(MainnetTransactionProcessor.java:47) ~[besu-core-1.4.7-SNAPSHOT.jar:1.4.7-dev-4523d591]
at org.hyperledger.besu.ethereum.mainnet.TransactionProcessor.processTransaction(TransactionProcessor.java:143) ~[besu-core-1.4.7-SNAPSHOT.jar:1.4.7-dev-4523d591]
at org.hyperledger.besu.ethereum.mainnet.AbstractBlockProcessor.processBlock(AbstractBlockProcessor.java:137) ~[besu-core-1.4.7-SNAPSHOT.jar:1.4.7-dev-4523d591]
at org.hyperledger.besu.ethereum.mainnet.AbstractBlockProcessor.processBlock(AbstractBlockProcessor.java:37) ~[besu-core-1.4.7-SNAPSHOT.jar:1.4.7-dev-4523d591]
at org.hyperledger.besu.ethereum.mainnet.BlockProcessor.processBlock(BlockProcessor.java:60) ~[besu-core-1.4.7-SNAPSHOT.jar:1.4.7-dev-4523d591]
at org.hyperledger.besu.ethereum.MainnetBlockValidator.validateAndProcessBlock(MainnetBlockValidator.java:88) ~[besu-core-1.4.7-SNAPSHOT.jar:1.4.7-dev-4523d591]
at org.hyperledger.besu.ethereum.mainnet.MainnetBlockImporter.importBlock(MainnetBlockImporter.java:45) ~[besu-core-1.4.7-SNAPSHOT.jar:1.4.7-dev-4523d591]
at org.hyperledger.besu.ethereum.core.BlockImporter.importBlock(BlockImporter.java:44) ~[besu-core-1.4.7-SNAPSHOT.jar:1.4.7-dev-4523d591]
at org.hyperledger.besu.ethereum.eth.sync.fullsync.FullImportBlockStep.accept(FullImportBlockStep.java:56) ~[besu-eth-1.4.7-SNAPSHOT.jar:1.4.7-dev-4523d591]
at org.hyperledger.besu.ethereum.eth.sync.fullsync.FullImportBlockStep.accept(FullImportBlockStep.java:30) ~[besu-eth-1.4.7-SNAPSHOT.jar:1.4.7-dev-4523d591]
at org.hyperledger.besu.services.pipeline.CompleterStage.run(CompleterStage.java:37) ~[besu-pipeline-1.4.7-SNAPSHOT.jar:1.4.7-dev-4523d591]
at org.hyperledger.besu.services.pipeline.Pipeline.lambda$runWithErrorHandling$3(Pipeline.java:130) ~[besu-pipeline-1.4.7-SNAPSHOT.jar:1.4.7-dev-4523d591]
... 5 more
The text was updated successfully, but these errors were encountered:
Thank you for your analysis. The bug is fixed and you can now launch besu with this command to start a fullsunc --network=YOLO_V1 --Xberlin-enabled=true --sync-mode=FULL
Hey,
I've been fuzzing yolo with interesting test vectors and came across the following crasher.
The problem is, that the index of the discount table is too long, so an index out of bounds exception is thrown when you call BLS12_G1MULTIEXP (probably the same with BLS12_G2MULTIEXP).
Steps to Reproduce (Bug)
Additional Information
The text was updated successfully, but these errors were encountered: