-
Notifications
You must be signed in to change notification settings - Fork 1
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
Transactions getting rejected and going into a loop #96
Comments
Update: After initial testing and investigations, it was found that if the block size (block execution time) is reduced to 1s instead of original 2s, then this issue is not observed in westend. However, this reduces the chain throughput and should only be considered a work around while the exact issue is identified. Further testing is needed to confirm that the workaround is actually working. |
Update: A fix was deployed on westend and a few rounds of testing was done. It seems the network is more stable after the fix and the loop issue is not seen anymore. The transactions are still going into a retracted status, but that is because of a tx pool and will be addressed via the new tx pool impl. Next steps: testing to be done with the new tx pool. |
Update: This PR that fixes one part of the issue related to performance problem with events - paritytech/polkadot-sdk#1223 And, the other part of the issue is related to tx pool implementation that is being addressed here - paritytech/polkadot-sdk#4639 Both of these fixes are currently deployed with the westend-mythos network but they still have some rough edges to be addressed, before we call this completely fixed. Sometimes transactions are getting stuck in the pool. The core dev team is looking into it. With these updates, the issue with transactions getting into the loop and getting into retracted status seem to be resolved. However, the following issues are being observed:
|
Yeah that is related to a missing optimization that I already briefly discussed with @michalkucharczyk.
We looked into this as well. It looks like that the Kagome validator (testing of an alternative Polkadot node implementation) is involved when the parachain is not progressing. I will discuss that we disable them for a moment and try to test again! |
This seems to be fixed. I was not able to reproduce it with |
Thanks, @michalkucharczyk. That is really good progress. I think, in this case, we should only call something fixed when it is merged in the SDK main branch. We can't run a live parachain using unmerged branches. But we can keep this issue updated with the progress made. |
Yeah, sure I meant fixed in new-txpool which is not yet merged. |
I took a look into the problem of empty blocks. The empty block occur in two cases:
This can be easily handled, and the fix is already on the branch.
I see two options here:
|
When sending a large number of batched (batch_all) transactions to the Mythos parachain (tried on westend and a private testnet), after some time, the transactions start getting rejected from the chain and their status goes into a loop. The test was done using 800,000 new accounts (not existing on chain), divided into batches of 500 to 1000 transactions of balances.transfer_keep_alive() call. A burst of 20 batches was sent at a time and a new burst was sent once all transactions were finalized from the previous burst.
See screenshot below:
In addition to the transaction status getting into a loop, following was also observed:
The issue was not reproduced on a local zombienet. But it is being reproduced consistently on westend.
PS: The bug was initially reported by the Mythical team on May 22. The core dev team at Parity is looking into it since then. This issue for tracking the next steps.
The text was updated successfully, but these errors were encountered: