Commit graph

1 commit

Author SHA1 Message Date
ozpool
64822da467 core/txpool/blobpool: preserve limbo entry on update store failure
The previous limbo.update implementation deleted the existing entry from
the store and indices before re-inserting it under the new block. If the
re-insertion (setAndIndex) failed, the blob sidecar was permanently
lost: limbo is the only source of truth for the sidecar once the blob
transaction has been offloaded out of the blobpool, and EIP-4844 blob
data is not stored in chain state.

Reorder the operations so the new entry is written first. Only after the
store Put succeeds is the old entry dropped from the store and the old
group mapping cleaned up. A failure to drop the old store id now only
leaks a billy slot - the blob itself is preserved under the new id, and
a follow-up reorg-rollback can still re-inject it.

Adds a round-trip test that updates the inclusion block of a limbo'd
blob and verifies it remains pullable under the new block.

Fixes #34944
2026-05-14 11:35:36 +05:30