Skip to content
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

mempool: handle out-of-order ABCI responses #5519

Closed
erikgrinaker opened this issue Oct 16, 2020 · 2 comments
Closed

mempool: handle out-of-order ABCI responses #5519

erikgrinaker opened this issue Oct 16, 2020 · 2 comments
Labels
C:mempool Component: Mempool stale for use by stalebot

Comments

@erikgrinaker
Copy link
Contributor

erikgrinaker commented Oct 16, 2020

The mempool currently seems to require asynchronous ABCI calls to returns responses in the same order they were called - e.g. CListMempool.recheckCursor has an ordered list of transactions to recheck, but calls CheckTxAsync to actually recheck them, which may return responses in a different order.

This caused #5439, since the gRPC ABCI client, although serial in nature, used unordered goroutines to simulate async responses in order to satisfy the async API semantics.

@erikgrinaker erikgrinaker added the C:mempool Component: Mempool label Oct 16, 2020
mergify bot pushed a commit that referenced this issue Oct 20, 2020
Fixes #5439. This is really a workaround for #5519 (unless we require async implementations to return ordered responses, but that kind of defeats the purpose of having an async API).
erikgrinaker added a commit that referenced this issue Oct 20, 2020
Fixes #5439. This is really a workaround for #5519 (unless we require async implementations to return ordered responses, but that kind of defeats the purpose of having an async API).
erikgrinaker added a commit that referenced this issue Oct 20, 2020
Fixes #5439. This is really a workaround for #5519 (unless we require async implementations to return ordered responses, but that kind of defeats the purpose of having an async API).
@tessr tessr added this to the v0.35 milestone Nov 13, 2020
@tessr tessr added this to To do in Tendermint Core Project Board via automation Nov 13, 2020
@tessr tessr moved this from To do to Untriaged in Tendermint Core Project Board Nov 13, 2020
@alexanderbez
Copy link
Contributor

When I spoke to @ebuchman about this for clarification on the v1 mempool, I recall that we're guaranteed to get the responses in the order in which they were executed.

@tac0turtle
Copy link
Contributor

for unix, tcp and in process this is the case, but with gRPC the issue above arises.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C:mempool Component: Mempool stale for use by stalebot
Projects
No open projects
Development

No branches or pull requests

4 participants