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

RPC node's send_transaction() doesn't retry #9974

Closed
garious opened this issue May 11, 2020 · 4 comments · Fixed by #10446
Closed

RPC node's send_transaction() doesn't retry #9974

garious opened this issue May 11, 2020 · 4 comments · Fixed by #10446
Assignees
Milestone

Comments

@garious
Copy link
Contributor

garious commented May 11, 2020

Problem

Same problem as #9400, but creating a separate ticket with reduced scope.

Proposed Solution

Add a thread to the RPC node that resends transactions until its blockhash expires.

@garious garious added this to the v1.2.0 milestone May 11, 2020
@mvines
Copy link
Member

mvines commented May 11, 2020

Duplicate of #9401

@mvines mvines marked this as a duplicate of #9401 May 11, 2020
@mvines mvines closed this as completed May 11, 2020
@garious garious reopened this May 11, 2020
@garious
Copy link
Contributor Author

garious commented May 11, 2020

Not a duplicate. RpcClient::send_transaction() should remain non-blocking. No client-side changes needed.

@mvines mvines self-assigned this May 14, 2020
This was referenced May 14, 2020
@mvines mvines modified the milestones: v1.2.0, v1.2.1 May 26, 2020
@aeyakovenko
Copy link
Member

While the RPC node is retrying, the leader should make a best effort to send back the signature + status code to the RPC node if the transaction failed in such a way that it won't be encoded into the ledger.

@mvines
Copy link
Member

mvines commented Jun 6, 2020

While the RPC node is retrying, the leader should make a best effort to send back the signature + status code to the RPC node if the transaction failed in such a way that it won't be encoded into the ledger.

The new sendTransaction preflight checks should mitigate most of this concern, as they will filter out invalid transactions and most execution errors.

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 a pull request may close this issue.

3 participants