8000 fix(mempool)!: stop accepting TXs in the mempool if we can't keep up with reCheckTX (backport #3314) by mergify[bot] · Pull Request #3337 · cometbft/cometbft · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

fix(mempool)!: stop accepting TXs in the mempool if we can't keep up with reCheckTX (backport #3314) #3337

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jun 24, 2024

Conversation

mergify[bot]
Copy link
Contributor
@mergify mergify bot commented Jun 24, 2024

This PR is a combination of ideas from @ValarDragon, @hvanz and @sergio-mena to alleviate nodes that, while not having their mempool full "officially", they have too many TXs lingering in the mempool which causes them to fall behind.
The mechanism works as follows:

  • We mark when we start and end reChecking
  • If, by the time a new block is decided we are still running the previous reCheckTx, we declare the mempool as rechecktx-full
  • Otherwise, we declare the mempool as not rechecktx-full

We have tested this and it fixes the failing nightlies that are blocking us from cutting v1.0.0-rc1.

Some UTs need to be fixed, hence posting as draft for the moment.


PR checklist

  • Tests written/updated
  • Changelog entry added in .changelog (we use unclog to manage our changelog)
  • Updated relevant documentation (docs/ or spec/) and code comments
  • Title follows the Conventional Commits spec

This is an automatic backport of pull request #3314 done by [Mergify](https://mergify.com).

…with reCheckTX (#3314)

This PR is a combination of ideas from @ValarDragon, @hvanz and
@sergio-mena to alleviate nodes that, while not having their mempool
full "officially", they have too many TXs lingering in the mempool which
causes them to fall behind.
The mechanism works as follows:

* We mark when we start and end reChecking
* If, by the time a new block is decided we are still running the
previous `reCheckTx`, we declare the mempool as rechecktx-full
* Otherwise, we declare the mempool as not rechecktx-full

We have tested this and it fixes the failing nightlies that are blocking
us from cutting `v1.0.0-rc1`.

Some UTs need to be fixed, hence posting as draft for the moment.

---

#### PR checklist

- [ ] Tests written/updated
- [x] Changelog entry added in `.changelog` (we use
[unclog](https://github.com/informalsystems/unclog) to manage our
changelog)
- [ ] Updated relevant documentation (`docs/` or `spec/`) and code
comments
- [x] Title follows the [Conventional
Commits](https://www.conventionalcommits.org/en/v1.0.0/) spec

---------

Co-authored-by: Andy Nogueira <me@andynogueira.dev>
Co-authored-by: Dev Ojha <dojha@berkeley.edu>
Co-authored-by: hvanz <hernan.vanzetto@gmail.com>
Co-authored-by: Hernán Vanzetto <15466498+hvanz@users.noreply.github.com>
(cherry picked from commit 0cd2907)

# Conflicts:
#	mempool/clist_mempool.go
#	mempool/clist_mempool_test.go
@mergify mergify bot added the conflicts label Jun 24, 2024
@mergify mergify bot requested a review from a team as a code owner June 24, 2024 21:01

This comment was marked as resolved.

@hvanz hvanz removed the conflicts label Jun 24, 2024
@hvanz hvanz merged commit 201aa2c into v0.38.x Jun 24, 2024
21 checks passed
@hvanz hvanz deleted the mergify/bp/v0.38.x/pr-3314 branch June 24, 2024 21:57
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.

2 participants
0