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

Cache the reasons why transactions are dropped to support troubleshooting #336

Open
marun opened this issue Sep 14, 2023 · 0 comments
Open

Comments

@marun
Copy link
Contributor

marun commented Sep 14, 2023

Why

Recent attempts to enable e2e testing of C-Chain workflows (specifically atomic transactions) in avalanchego ran into problems where transactions were dropped with no easy way to diagnose the reason. This was in contrast to X- and P-Chain atomic transactions, where a failed transaction generally returned the reason for the failure.

Issue tracking the flakes that prompted the filing of this issue: ava-labs/avalanchego#1993

Suggested How

Since evm transaction issuance doesn't support returning a reason a transaction was dropped (only the status is returned), maybe it makes sense to maintain a cache mapping the ids of dropped transactions to the reasons the transactions were dropped and allow requests to be made to that cache? e.g. GetDroppedReason(txID) (string, error)

Alternatives

Another approach might be to increase the detail of evm logging around a transaction being dropped. This would allow determining why a transaction was dropped so long as someone had access to the logs. For non-test scenarios, though, a user may not have access to the logs.

Ideally both logging and API access to dropped reasons would be possible, but if only one were possible the logging is likely the lower-hanging fruit.

darioush pushed a commit that referenced this issue Apr 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Status: Backlog 🗄
Development

No branches or pull requests

1 participant