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.
This commit is contained in:
Sina Mahmoodi 2026-05-13 18:58:42 +00:00
parent b2aa6987de
commit 6abf72e5bb

View file

@ -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
}