go-ethereum/core/txpool/legacypool
Daniel Liu b9eb244a67 core/txpool: guard legacypool reservation release ownership
Add an ownership guard before releasing reserved addresses from legacypool cleanup paths.

Address presence in pending/queue and reservation ownership are tracked separately. Cleanup logic can observe an address as queue-empty while the reservation tracker no longer considers that address owned by the current subpool. In that case, a follow-up Release call can attempt to unreserve a non-owned address.

Use an optional ownership capability when available, so legacypool only releases reservations it still owns without expanding the exported Reserver interface.

Also add a focused regression test that exercises the queue-empty-without-reservation scenario.
2026-03-27 15:49:02 +08:00
..
legacypool.go core/txpool: guard legacypool reservation release ownership 2026-03-27 15:49:02 +08:00
legacypool2_test.go eth: add tx to locals only if it has a chance of acceptance (#31618) 2025-04-17 21:27:48 +02:00
legacypool_test.go core/txpool: guard legacypool reservation release ownership 2026-03-27 15:49:02 +08:00
list.go core/txpool: add sanity overflow check (#32544) 2025-09-10 21:33:15 +08:00
list_test.go core/types: fix transaction pool price-heap comparison (#33923) 2026-03-02 23:42:39 +01:00
noncer.go all: move main transaction pool into a subpool (#27463) 2023-06-16 15:29:40 +03:00
queue.go core/txpool/legacypool: clarify and fix non-executable tx heartbeat (#33704) 2026-01-29 10:53:55 +01:00