From 6abf72e5bb6ef30fd21498ca6dc1065803280458 Mon Sep 17 00:00:00 2001 From: Sina Mahmoodi Date: Wed, 13 May 2026 18:58:42 +0000 Subject: [PATCH] core/txpool/blobpool: silence GetRLP miss-log spam BlobPool.GetRLP runs encodeForNetwork on whatever getRLP returns. On a miss getRLP returns an empty slice; encodeForNetwork then errors with "invalid blobTxForPool RLP: unexpected EOF" and the error path logs at ERROR level. Because TxPool.GetRLP probes every subpool in order, every legacy-tx hash query hits the blob pool first and triggers this log line. On a busy node this floods the logs. Short-circuit when getRLP returns empty: that is the documented "not in this pool" condition, mirroring what BlobPool.Get already does. --- core/txpool/blobpool/blobpool.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/txpool/blobpool/blobpool.go b/core/txpool/blobpool/blobpool.go index f8021e00c4..c52c091bd1 100644 --- a/core/txpool/blobpool/blobpool.go +++ b/core/txpool/blobpool/blobpool.go @@ -1575,12 +1575,16 @@ func (p *BlobPool) Get(hash common.Hash) *types.Transaction { // e.g. type_byte || [..., version, [blobs], [comms], [proofs]] func (p *BlobPool) GetRLP(hash common.Hash) []byte { data := p.getRLP(hash) + if len(data) == 0 { + // Not in this pool. The TxPool aggregator probes every subpool, so + // this is the common case for any non-blob hash; do not log. + return nil + } rlp, err := encodeForNetwork(data) if err != nil { log.Error("Failed to encode pooled tx into the network type", "hash", hash, "err", err) return nil } - return rlp }