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
We're running a 4-node QBFT chain at version v24.9.1 which has been mining blocks successfully.
Randomly the QBFT importBlockToChain(...) path hit the following exception:
2024-11-25 01:14:51.009+00:00 | BftProcessorExecutor-QBFT-0 | INFO | QbftBesuControllerBuilder | Imported #4,409,754 / 0 tx / 0 pending / 0 (0.0%) gas / (0xa441dc13de7058d008db01fa8cc809fe4bd9d90940628dda9c681a3450948cf0)
2024-11-25 01:14:56.020+00:00 | BftProcessorExecutor-QBFT-0 | ERROR | EventMultiplexer | State machine threw exception while processing event \{org.hyperledger.besu.consensus.common.bft.events.BftReceivedMessageEvent@ccf16401\}
java.util.ConcurrentModificationException
at java.base/java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1687)
at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:540)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:526)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:512)
at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:239)
at java.base/java.util.stream.ReferencePipeline.anyMatch(ReferencePipeline.java:632)
at org.hyperledger.besu.ethereum.permissioning.NodeLocalConfigPermissioningController.isPermitted(NodeLocalConfigPermissioningController.java:243)
at org.hyperledger.besu.ethereum.permissioning.NodeLocalConfigPermissioningController.isConnectionPermitted(NodeLocalConfigPermissioningController.java:334)
at org.hyperledger.besu.ethereum.permissioning.node.NodePermissioningController.isPermitted(NodePermissioningController.java:87)
at org.hyperledger.besu.ethereum.permissioning.node.PeerPermissionsAdapter.inboundIsPermitted(PeerPermissionsAdapter.java:122)
at org.hyperledger.besu.ethereum.permissioning.node.PeerPermissionsAdapter.isPermitted(PeerPermissionsAdapter.java:78)
at org.hyperledger.besu.ethereum.p2p.permissions.PeerPermissions$CombinedPeerPermissions.isPermitted(PeerPermissions.java:129)
at org.hyperledger.besu.ethereum.p2p.rlpx.connections.PeerRlpxPermissions.allowOngoingConnection(PeerRlpxPermissions.java:61)
at org.hyperledger.besu.ethereum.p2p.rlpx.RlpxAgent.lambda$handlePermissionsUpdate$10(RlpxAgent.java:280)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
at java.base/java.util.stream.DistinctOps$1$2.accept(DistinctOps.java:174)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.concurrent.ConcurrentHashMap$ValueSpliterator.forEachRemaining(ConcurrentHashMap.java:3620)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:522)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:512)
at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310)
at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:739)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:522)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:512)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:239)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at org.hyperledger.besu.ethereum.p2p.rlpx.RlpxAgent.handlePermissionsUpdate(RlpxAgent.java:278)
at org.hyperledger.besu.ethereum.p2p.permissions.PeerPermissions.lambda$dispatchUpdate$0(PeerPermissions.java:79)
at org.hyperledger.besu.util.Subscribers.lambda$forEach$0(Subscribers.java:131)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at org.hyperledger.besu.util.Subscribers.forEach(Subscribers.java:128)
at org.hyperledger.besu.ethereum.p2p.permissions.PeerPermissions.dispatchUpdate(PeerPermissions.java:79)
at org.hyperledger.besu.ethereum.permissioning.node.PeerPermissionsAdapter.lambda$new$0(PeerPermissionsAdapter.java:54)
at org.hyperledger.besu.ethereum.chain.DefaultBlockchain.lambda$appendBlockHelper$30(DefaultBlockchain.java:473)
at org.hyperledger.besu.util.Subscribers.lambda$forEach$0(Subscribers.java:131)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at org.hyperledger.besu.util.Subscribers.forEach(Subscribers.java:128)
at org.hyperledger.besu.ethereum.chain.DefaultBlockchain.appendBlockHelper(DefaultBlockchain.java:473)
at org.hyperledger.besu.ethereum.chain.DefaultBlockchain.appendBlock(DefaultBlockchain.java:414)
at org.hyperledger.besu.ethereum.mainnet.MainnetBlockImporter.lambda$importBlock$0(MainnetBlockImporter.java:53)
at java.base/java.util.Optional.ifPresent(Optional.java:178)
at org.hyperledger.besu.ethereum.mainnet.MainnetBlockImporter.importBlock(MainnetBlockImporter.java:51)
at org.hyperledger.besu.ethereum.core.BlockImporter.importBlock(BlockImporter.java:45)
at org.hyperledger.besu.consensus.qbft.statemachine.QbftRound.importBlockToChain(QbftRound.java:361)
at org.hyperledger.besu.consensus.qbft.statemachine.QbftRound.peerIsCommitted(QbftRound.java:330)
at org.hyperledger.besu.consensus.qbft.statemachine.QbftRound.handleCommitMessage(QbftRound.java:255)
at org.hyperledger.besu.consensus.qbft.statemachine.QbftBlockHeightManager.actionOrBufferMessage(QbftBlockHeightManager.java:264)
at org.hyperledger.besu.consensus.qbft.statemachine.QbftBlockHeightManager.handleCommitPayload(QbftBlockHeightManager.java:251)
at org.hyperledger.besu.consensus.common.bft.statemachine.BaseBftController.consumeMessage(BaseBftController.java:126)
at org.hyperledger.besu.consensus.qbft.statemachine.QbftController.handleMessage(QbftController.java:95)
at org.hyperledger.besu.consensus.common.bft.statemachine.BaseBftController.handleMessageEvent(BaseBftController.java:88)
at org.hyperledger.besu.consensus.common.bft.EventMultiplexer.handleBftEvent(EventMultiplexer.java:53)
at java.base/java.util.Optional.ifPresent(Optional.java:178)
at org.hyperledger.besu.consensus.common.bft.BftProcessor.run(BftProcessor.java:68)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1595)
Versions (Add all that apply)
Software version: v24.9.1
Java version: Java 21
OS Name & Version: Ubuntu
The text was updated successfully, but these errors were encountered:
Steps to Reproduce
We're running a 4-node QBFT chain at version
v24.9.1
which has been mining blocks successfully.Randomly the QBFT
importBlockToChain(...)
path hit the following exception:Versions (Add all that apply)
v24.9.1
The text was updated successfully, but these errors were encountered: