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

CachingChainHandle do not preserve ordering of chain queries #1948

Open
5 tasks
soareschen opened this issue Mar 9, 2022 · 0 comments
Open
5 tasks

CachingChainHandle do not preserve ordering of chain queries #1948

soareschen opened this issue Mar 9, 2022 · 0 comments

Comments

@soareschen
Copy link
Contributor

Crate

ibc-relayer

Summary of Bug

The CachingChainHandle we introduced in #1932 do not preserve the ordering of request and response in case there is a cache hit.

In the original BaseChainHandle implementation, the requests are serialized through a single channel with requests coming in at a later time always get a response later than earlier requests. However with CachingChainHandle introduced, it would return from the method call immediately, even when earlier requests are queued up by the underlying ChainHandle. This may cause unexpected behavior, and may be the cause of why #1947 failed.

We may want to consider either to preserve the request/response ordering CachingChainHandle, or remove any faulty assumption that require the ChainHandle requests to be ordered. In the long term, we do want to remove that limitation so that multiple chain requests can be handled in parallel, in particular for the case of querying vs submitting transactions. So we would still need to investigate which part of the code assume the ChainHandle request/response are ordered.


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate milestone (priority) applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned
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

No branches or pull requests

1 participant