go-ethereum/core/txpool/blobpool
0xoasis 85fe272355
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Keeper Build (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
core/txpool/blobpool: serialize legacy data conversions (#35387)
`conversionQueue` is meant to run billy/legacy migrations serially on a
single worker. On each `startConversion`, it currently always calls
`runNextTask()`, which overwrites `taskDone` and starts another
goroutine even when a migration is already running.

That breaks two invariants during an upgrade with legacy entries in both
the main store and limbo:

1. Migrations intended to be serial can run concurrently.
2. `close()` only waits for the most recently launched task, so shutdown
can close the stores while a forgotten migration is still using them.

Only start the next queued migration when no task is active (`taskDone
== nil`). The existing `taskDone` completion path then advances the
queue, and `close` reliably waits for the active task.
2026-07-20 19:25:57 +02:00
..
blobpool.go core/txpool/blobpool, eth: implement sparse blobpool (#34047) 2026-07-15 14:41:04 +02:00
blobpool_test.go core/txpool/blobpool, eth: implement sparse blobpool (#34047) 2026-07-15 14:41:04 +02:00
buffer.go core/txpool/blobpool, eth: implement sparse blobpool (#34047) 2026-07-15 14:41:04 +02:00
buffer_test.go core/txpool/blobpool, eth: implement sparse blobpool (#34047) 2026-07-15 14:41:04 +02:00
cache.go core/txpool/blobpool, eth: implement sparse blobpool (#34047) 2026-07-15 14:41:04 +02:00
cache_test.go core/txpool/blobpool, eth: implement sparse blobpool (#34047) 2026-07-15 14:41:04 +02:00
config.go core/txpool/blobpool, eth: implement sparse blobpool (#34047) 2026-07-15 14:41:04 +02:00
conversion.go core/txpool/blobpool: serialize legacy data conversions (#35387) 2026-07-20 19:25:57 +02:00
conversion_test.go core/txpool/blobpool: serialize legacy data conversions (#35387) 2026-07-20 19:25:57 +02:00
evictheap.go core/txpool/blobpool: delay announcement of low fee txs (#33893) 2026-03-02 23:59:33 +01:00
evictheap_test.go core/txpool/blobpool: delay announcement of low fee txs (#33893) 2026-03-02 23:59:33 +01:00
interface.go cmd, core, trie, triedb: split CachingDB into merkle + binary dbs. (#34700) 2026-04-17 08:55:54 +08:00
limbo.go core/txpool/blobpool, eth: implement sparse blobpool (#34047) 2026-07-15 14:41:04 +02:00
limbo_test.go core/txpool/blobpool, eth: implement sparse blobpool (#34047) 2026-07-15 14:41:04 +02:00
lookup.go core/txpool/blobpool, eth: implement sparse blobpool (#34047) 2026-07-15 14:41:04 +02:00
metrics.go core/txpool/blobpool: fix gapped queue size cap (#34831) 2026-05-02 13:29:21 +02:00
priority.go core/txpool/blobpool: delay announcement of low fee txs (#33893) 2026-03-02 23:59:33 +01:00
priority_test.go core/txpool/blobpool: delay announcement of low fee txs (#33893) 2026-03-02 23:59:33 +01:00
slotter.go core/txpool: drop support for v0 blob sidecar (#35191) 2026-06-22 10:31:51 +02:00
slotter_test.go core/txpool: drop support for v0 blob sidecar (#35191) 2026-06-22 10:31:51 +02:00