Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vertx thread blocked during RLP decoding of eth_getLogs #8078

Open
jframe opened this issue Jan 6, 2025 · 0 comments
Open

Vertx thread blocked during RLP decoding of eth_getLogs #8078

jframe opened this issue Jan 6, 2025 · 0 comments
Labels
bug Something isn't working mainnet P3 Medium (ex: JSON-RPC request not working with a specific client library due to loose spec assumtion) RPC

Comments

@jframe
Copy link
Contributor

jframe commented Jan 6, 2025

Description

A user on Discord reported Vertx thread blocked errors occurring. It was resolved after a restart.

Logs

2025-01-04 15:33:41.856+00:00 | vertx-blocked-thread-checker | WARN  | BlockedThreadChecker | Thread Thread[vert.x-worker-thread-11,5,main] has been blocked for 344450 ms, time limit is 60000 ms
io.vertx.core.VertxException: Thread blocked
	at org.hyperledger.besu.ethereum.rlp.RLPEncodingHelpers.isSingleRLPByte(RLPEncodingHelpers.java:28)
	at org.hyperledger.besu.ethereum.rlp.RLPEncodingHelpers.elementSize(RLPEncodingHelpers.java:41)
	at org.hyperledger.besu.ethereum.rlp.AbstractRLPOutput.writeBytes(AbstractRLPOutput.java:85)
	at org.hyperledger.besu.ethereum.rlp.BytesValueRLPOutput.writeBytes(BytesValueRLPOutput.java:21)
	at org.hyperledger.besu.ethereum.rlp.RLPOutput.writeBigIntegerScalar(RLPOutput.java:138)
	at org.hyperledger.besu.ethereum.core.encoding.AccessListTransactionEncoder.encodeAccessListInner(AccessListTransactionEncoder.java:65)
	at org.hyperledger.besu.ethereum.core.encoding.AccessListTransactionEncoder.encode(AccessListTransactionEncoder.java:35)
	at org.hyperledger.besu.ethereum.core.encoding.TransactionEncoder.encodeOpaqueBytes(TransactionEncoder.java:98)
	at org.hyperledger.besu.ethereum.core.Transaction.memoizeHashAndSize(Transaction.java:559)
	at org.hyperledger.besu.ethereum.core.Transaction.getHash(Transaction.java:540)
	at org.hyperledger.besu.ethereum.api.query.BlockchainQueries.lambda$matchingLogs$23(BlockchainQueries.java:873)
	at java.base/java.util.stream.IntPipeline$1$1.accept(IntPipeline.java:180)
	at java.base/java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Streams.java:104)
	at java.base/java.util.Spliterator$OfInt.forEachRemaining(Spliterator.java:712)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
	at org.hyperledger.besu.ethereum.api.query.BlockchainQueries.matchingLogs(BlockchainQueries.java:884)
	at org.hyperledger.besu.ethereum.api.query.BlockchainQueries.matchingLogsCached(BlockchainQueries.java:835)
	at org.hyperledger.besu.ethereum.api.query.BlockchainQueries.lambda$matchingLogs$19(BlockchainQueries.java:765)
	at java.base/java.util.Optional.map(Optional.java:260)
	at org.hyperledger.besu.ethereum.api.query.BlockchainQueries.matchingLogs(BlockchainQueries.java:762)
	at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthGetLogs.lambda$response$3(EthGetLogs.java:111)
	at java.base/java.util.Optional.orElseGet(Optional.java:364)
	at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthGetLogs.response(EthGetLogs.java:78)
	at org.hyperledger.besu.ethereum.api.jsonrpc.execution.BaseJsonRpcProcessor.process(BaseJsonRpcProcessor.java:44)
	at org.hyperledger.besu.ethereum.api.jsonrpc.execution.TracedJsonRpcProcessor.process(TracedJsonRpcProcessor.java:54)
	at org.hyperledger.besu.ethereum.api.jsonrpc.execution.TimedJsonRpcProcessor.process(TimedJsonRpcProcessor.java:45)
	at org.hyperledger.besu.ethereum.api.jsonrpc.execution.JsonRpcExecutor.execute(JsonRpcExecutor.java:92)
	at org.hyperledger.besu.ethereum.api.handlers.AbstractJsonRpcExecutor.executeRequest(AbstractJsonRpcExecutor.java:87)
	at org.hyperledger.besu.ethereum.api.handlers.JsonRpcArrayExecutor.executeRequest(JsonRpcArrayExecutor.java:107)
	at org.hyperledger.besu.ethereum.api.handlers.JsonRpcArrayExecutor.processMaybeRequest(JsonRpcArrayExecutor.java:94)
	at org.hyperledger.besu.ethereum.api.handlers.JsonRpcArrayExecutor.executeRpcRequestBatch(JsonRpcArrayExecutor.java:76)
	at org.hyperledger.besu.ethereum.api.handlers.JsonRpcArrayExecutor.execute(JsonRpcArrayExecutor.java:58)
	at org.hyperledger.besu.ethereum.api.handlers.JsonRpcExecutorHandler.lambda$handler$0(JsonRpcExecutorHandler.java:57)
	at java.base/java.util.Optional.ifPresentOrElse(Optional.java:196)
	at org.hyperledger.besu.ethereum.api.handlers.JsonRpcExecutorHandler.lambda$handler$2(JsonRpcExecutorHandler.java:54)
	at io.vertx.ext.web.impl.BlockingHandlerDecorator.lambda$handle$0(BlockingHandlerDecorator.java:48)
	at io.vertx.core.impl.ContextImpl.lambda$executeBlocking$1(ContextImpl.java:191)
	at io.vertx.core.impl.ContextInternal.dispatch(ContextInternal.java:279)
	at io.vertx.core.impl.ContextImpl.lambda$internalExecuteBlocking$2(ContextImpl.java:210)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:1583)

Config

####################################################################################################
#                                                                                                  #
# Besu version 24.10.0                                                                             #
#                                                                                                  #
# Configuration:                                                                                   #
# Network: Mainnet                                                                                 #
# Network Id: 1                                                                                    #
# Data storage: Bonsai                                                                             #
# Sync mode: Checkpoint                                                                            #
# Sync min peers: 5                                                                                #
# RPC HTTP APIs: ETH,NET,WEB3                                                                      #
# RPC HTTP port: 8545                                                                              #
# Engine APIs: ENGINE,ETH                                                                          #
# Engine port: 8551                                                                                #
# Engine JWT: /jwtsecret.hex                                                                       #
# Using LAYERED transaction pool implementation                                                    #
# Using STACKED worldstate update mode                                                             #
# Limit trie logs enabled: retention: 512; prune window: 5000                                      #
#                                                                                                  #
# Host:                                                                                            #
# Java: openjdk-java-21                                                                            #
# Maximum heap size: 8.00 GB                                                                       #
# OS: linux-x86_64                                                                                 #
# glibc: 2.39                                                                                      #
# jemalloc: 5.3.0-0-g54eaed1d8b56b1aa528be3bdd1877e59c56fa90c                                      #
# Total memory: 62.52 GB                                                                           #
# CPU cores: 12                                                                                    #
#                                                                                                  #
# Plugin Registration Summary:                                                                     #
# No plugins have been registered.                                                                 #
# TOTAL = 0 of 0 plugins successfully registered.                                                  #
#                                                                                                  #
####################################################################################################
@jframe jframe added bug Something isn't working mainnet RPC labels Jan 6, 2025
@macfarla macfarla added the P3 Medium (ex: JSON-RPC request not working with a specific client library due to loose spec assumtion) label Jan 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working mainnet P3 Medium (ex: JSON-RPC request not working with a specific client library due to loose spec assumtion) RPC
Projects
None yet
Development

No branches or pull requests

2 participants