Skip to content

core/txpool: improve Add() logic, handle edge case#2754

Merged
zzzckck merged 5 commits intodevelopfrom
txpool-fix
Nov 22, 2024
Merged

core/txpool: improve Add() logic, handle edge case#2754
zzzckck merged 5 commits intodevelopfrom
txpool-fix

Conversation

@emailtovamos
Copy link
Copy Markdown
Contributor

@emailtovamos emailtovamos commented Nov 13, 2024

Description

This PR simplifies the logic by doing the checks regarding availability of slots in the Add() function of the OverflowPool rather than before where this logic was outside.

This also addressed an edge case where if the OverflowPool is full, we simply take out one transaction and put the new one in. But this might result in the pool size exceeding its limit because the new transaction might have more slots than the older transaction.

Also fix the bug: we were comparing number of transactions with number of slots here:
if uint64(len(tp.txHeap)) >= tp.maxSize
Slots should be compared with slots.

Added TestTxOverflowPoolSlotCalculation() to capture the bug in the previous code.

The current change ensures we never exceed the set total size of the overflow pool.

@emailtovamos emailtovamos changed the title core: handle edge case of tx size mismatch core/txpool: improve Add() logic, handle edge case Nov 14, 2024
@emailtovamos emailtovamos marked this pull request as ready for review November 14, 2024 07:42
@emailtovamos emailtovamos requested a review from zzzckck November 14, 2024 07:43
zzzckck
zzzckck previously approved these changes Nov 20, 2024
galaio
galaio previously approved these changes Nov 20, 2024
@emailtovamos emailtovamos dismissed stale reviews from galaio and zzzckck via b00a6c3 November 21, 2024 11:39
Copy link
Copy Markdown
Contributor

@MatusKysel MatusKysel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@zzzckck zzzckck merged commit af09f3a into develop Nov 22, 2024
@zzzckck zzzckck mentioned this pull request Nov 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants