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

Nonce too low - nonce jumps #624

Open
mkysel opened this issue Mar 12, 2025 · 0 comments
Open

Nonce too low - nonce jumps #624

mkysel opened this issue Mar 12, 2025 · 0 comments
Assignees

Comments

@mkysel
Copy link
Collaborator

mkysel commented Mar 12, 2025

We might see logs like these

2025-03-12T14:41:18.283-0400	DEBUG	replication.GroupBlockchainPublisher	Nonce already used, consuming and moving on...	{"contractAddress": "0x2f3A1Da8450A56CEE704597C89363698d42f7806", "nonce": 9482, "error": "nonce too low: address 0x8ecd607fb9f4e90e20a776d6f6eefecb87cfda6a, tx: 9482 state: 9894"}

Our nonce manager can handle these gracefully, but it might take some time to get to the current state.

I've seen the nonce to jump 200-300 elements forward.

It would be cool if we could fast forward the nonce manager using abandon, but it has been super hard to write and I can't get a quick fix.

mkysel added a commit that referenced this issue Mar 13, 2025
When hammering our alchemy node in testnet, I noticed a bunch of issues
that weren't seen in the local test development.

1) "nonce too high" - it usually indicates that the mempool is too full.
- gracefully hide the error from the caller if it does get hit
- prevent it from happening as often by limiting the concurrent number
of transactions in flight

2) #624
- Added a few tests that are useful, but dont fix 624

3) drive-by fix of TestAddRates

Otherwise HA payer works perfectly.

Closes #423 

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Summary by CodeRabbit

- **New Features**
- Introduced a delay mechanism that gracefully handles transient
operational issues, contributing to smoother transaction processing.
- Enhanced concurrent request management to improve performance and
stability during simultaneous operations.
- **Tests**
- Added new tests to verify the resilience and robustness of concurrent
operations under load.
- Improved error handling in tests to manage transient failures more
effectively, including a retry mechanism for certain operations.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
@mkysel mkysel moved this to Todo in Decentralization Mar 13, 2025
@mkysel mkysel self-assigned this Mar 13, 2025
@mkysel mkysel moved this from Todo to Later in Decentralization Mar 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Later
Development

No branches or pull requests

1 participant