-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
Sending multiple transactions from an account provides "unauthorized: signature verification failed" #6287
Comments
Also cosmos sdk is providing tons of issues that are not signature failed as signature failed issue. |
Confirmed this is an issue on the latest Gaia After adding some debugging lines, I noticed that the nonce gets "stuck" somehow and I'm not sure why...maybe something to do around new blocks being produced. @alessio or @jgimeno do you have time to look into this? You can use the following script: https://pastebin.com/eT4CwGsL
This comment is unproductive and is not conducive to the betterment of the SDK. |
Looks like the following fixes it: diff --git a/x/auth/ante/sigverify.go b/x/auth/ante/sigverify.go
index 0b17b05bc..5974319ac 100644
--- a/x/auth/ante/sigverify.go
+++ b/x/auth/ante/sigverify.go
@@ -215,9 +215,7 @@ func (svd SigVerificationDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simul
}
// IncrementSequenceDecorator handles incrementing sequences of all signers.
-// Use the IncrementSequenceDecorator decorator to prevent replay attacks. Note,
-// there is no need to execute IncrementSequenceDecorator on RecheckTX since
-// CheckTx would already bump the sequence number.
+// Use the IncrementSequenceDecorator decorator to prevent replay attacks.
//
// NOTE: Since CheckTx and DeliverTx state are managed separately, subsequent and
// sequential txs orginating from the same account cannot be handled correctly in
@@ -234,11 +232,6 @@ func NewIncrementSequenceDecorator(ak AccountKeeper) IncrementSequenceDecorator
}
func (isd IncrementSequenceDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bool, next sdk.AnteHandler) (sdk.Context, error) {
- // no need to increment sequence on RecheckTx
- if ctx.IsReCheckTx() && !simulate {
- return next(ctx, tx, simulate)
- }
-
sigTx, ok := tx.(SigVerifiableTx)
if !ok {
return ctx, sdkerrors.Wrap(sdkerrors.ErrTxDecode, "invalid transaction type") |
Please make these changes locally @ahmedaly113 and confirm. |
Let me check, actually it's my sleeping time :) |
It works if I remove |
|
…nce sequence stuck
…quence stuck (#6291) * fix #6287 sending multiple transactions from an account make nonce sequence stuck * add change log * fix ante unit test after #6287 fix * Update x/auth/ante/sigverify.go Co-authored-by: Alessio Treglia <alessio@tendermint.com> Co-authored-by: Alessio Treglia <quadrispro@ubuntu.com> Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
* v0.38.4-RC1 * add release date * client/keys/parse: honor config changes (cosmos#6340) `keys parse` uses the global configuration before before client applications have had a chance to apply their settings. This change adds a `GetSealedConfig()` helper that waits for the config to be sealed before returning it. Fixes: cosmos#5091 Origin: cosmos@4e328d7 Author: Adam Bozanich <adam.boz@gmail.com> Reviewed-by: Alessio Treglia <alessio@tendermint.com> * Merge PR cosmos#6505: Backport v0.38.5: IAVL Bump (RC) & Pruning Refactor * Fix cl * Fix cl * Merge PR cosmos#6551: Ethanfrey/fix trace flag * Merge PR cosmos#6552: Add sender info to bank transfer event * Merge PR cosmos#6581: v0.38.5-RC1 * Add release date * deps: bump IAVL to 0.14 * cl++ * Merge PR cosmos#6618: backport 0.39.0 (launchpad): cherry pick cosmos#5839 * launchpad: bump tendermint to v0.33.6 (cosmos#6673) * launchpad: bump tendermint to v0.33.6 * cha-cha-cha * fix types.ChainAnteDecorators() panic (cosmos#5742) (cosmos#6669) ChainAnteDecorators() panics when no arguments are supplied. This change its behaviour and the function now returns a nil AnteHandler in case no AnteDecorator instances are supplied. Closes: cosmos#5741 * launchpad: register MsgFundCommunityPool to distribution codec (cosmos#6675) Closes: cosmos#6210 * client: backport IBC additions (cosmos#6682) * launchpad: backport cliCtx.QueryABCI * add prove flag * Save account for multi sending (cosmos#6674) Include changes from PR cosmos#6283 Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> Co-authored-by: Alessio Treglia <alessio@tendermint.com> * baseapp: fix sender events accumulation (cosmos#6683) closes: cosmos#6306 original PR: cosmos#6307 * run go mod tidy * add changelog line re: issue that was not included in v0.38.5 * Fix changelog * add release notes * update CODEOWNERS as per STABLE_RELEASES.md Launchpad's Stable Release Managers team's current composition as approved by @okwme (ICF): * @alessio * @clevinson * @ethanfrey * Add milestone's URL * Revert "update CODEOWNERS as per STABLE_RELEASES.md" This reverts commit f384592. * fix typo * add example patch * launchpad: backport account sequence stuck (cosmos#6721) Launchpad fix for cosmos#6287 * update release notes * make explicit that the regression is fixed in 0.39 * update release notes * Update CHANGELOG.md * update release notes @ethanfrey * remove pruning info from changelog They have been moved to NEWS.md * Update NEWS.md Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com> * Mege PR cosmos#6749: auth: remove custom JSON marshaling * mv NEWS.md -> RELEASE_NOTES.md Self-explanatory naming convention. * Update changelog * add reference to gaia software upgrade * x/staking: add call to iterator Close() method (cosmos#6794) Original pull request: cosmos#6791 * [ci] fix linter (cosmos#6795) * Merge PR cosmos#6842: Remove custom acc JSON marshl * Backport cosmos#5671: Add a Flag for CORS (cosmos#6853) This adds the --unsafe-cors flag functionality. From: cosmos#5671 Co-authored-by: Marko <marbar3778@yahoo.com> * Merge PR cosmos#6855: Allow passing through Content-Type (needed for POST) * Merge PR cosmos#6861: Revert "Backport 0.39.1: Remove Custom JSON Marshaling for Accounts" * Merge PR cosmos#6869: Backport 0.39.1: Launchpad Migration cosmos#6829 * Update changelog and release notes * Update x/auth/legacy/v0_39/types.go * Update x/auth/legacy/v0_38/types.go * Merge PR cosmos#6938: Fix v0.39 migrate test * Merge PR cosmos#6937: Bump Tendermint to v0.33.7 * Update x/auth/legacy/v0_39/types.go Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com> * update RELEASE_NOTES.md * update changelog * test case with real genesis data (cosmos#6995) * incorporate Ethan Frey's suggestion * make format * Update go mod * Remove some ci files * Modify data for test Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com> Co-authored-by: Aleksandr Bezobchuk <aleks.bezobchuk@gmail.com> Co-authored-by: Alessio Treglia <alessio@tendermint.com> Co-authored-by: Ethan Frey <ethanfrey@users.noreply.github.com> Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> Co-authored-by: Jonathan Gimeno <jgimeno@gmail.com> Co-authored-by: Marko <marbar3778@yahoo.com>
* v0.38.4-RC1 * add release date * client/keys/parse: honor config changes (cosmos#6340) `keys parse` uses the global configuration before before client applications have had a chance to apply their settings. This change adds a `GetSealedConfig()` helper that waits for the config to be sealed before returning it. Fixes: cosmos#5091 Origin: cosmos@4e328d7 Author: Adam Bozanich <adam.boz@gmail.com> Reviewed-by: Alessio Treglia <alessio@tendermint.com> * Merge PR cosmos#6505: Backport v0.38.5: IAVL Bump (RC) & Pruning Refactor * Fix cl * Fix cl * Merge PR cosmos#6551: Ethanfrey/fix trace flag * Merge PR cosmos#6552: Add sender info to bank transfer event * Merge PR cosmos#6581: v0.38.5-RC1 * Add release date * deps: bump IAVL to 0.14 * cl++ * Merge PR cosmos#6618: backport 0.39.0 (launchpad): cherry pick cosmos#5839 * launchpad: bump tendermint to v0.33.6 (cosmos#6673) * launchpad: bump tendermint to v0.33.6 * cha-cha-cha * fix types.ChainAnteDecorators() panic (cosmos#5742) (cosmos#6669) ChainAnteDecorators() panics when no arguments are supplied. This change its behaviour and the function now returns a nil AnteHandler in case no AnteDecorator instances are supplied. Closes: cosmos#5741 * launchpad: register MsgFundCommunityPool to distribution codec (cosmos#6675) Closes: cosmos#6210 * client: backport IBC additions (cosmos#6682) * launchpad: backport cliCtx.QueryABCI * add prove flag * Save account for multi sending (cosmos#6674) Include changes from PR cosmos#6283 Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> Co-authored-by: Alessio Treglia <alessio@tendermint.com> * baseapp: fix sender events accumulation (cosmos#6683) closes: cosmos#6306 original PR: cosmos#6307 * run go mod tidy * add changelog line re: issue that was not included in v0.38.5 * Fix changelog * add release notes * update CODEOWNERS as per STABLE_RELEASES.md Launchpad's Stable Release Managers team's current composition as approved by @okwme (ICF): * @alessio * @clevinson * @ethanfrey * Add milestone's URL * Revert "update CODEOWNERS as per STABLE_RELEASES.md" This reverts commit f384592. * fix typo * add example patch * launchpad: backport account sequence stuck (cosmos#6721) Launchpad fix for cosmos#6287 * update release notes * make explicit that the regression is fixed in 0.39 * update release notes * Update CHANGELOG.md * update release notes @ethanfrey * remove pruning info from changelog They have been moved to NEWS.md * Update NEWS.md Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com> * Mege PR cosmos#6749: auth: remove custom JSON marshaling * mv NEWS.md -> RELEASE_NOTES.md Self-explanatory naming convention. * Update changelog * add reference to gaia software upgrade * x/staking: add call to iterator Close() method (cosmos#6794) Original pull request: cosmos#6791 * [ci] fix linter (cosmos#6795) * Merge PR cosmos#6842: Remove custom acc JSON marshl * Backport cosmos#5671: Add a Flag for CORS (cosmos#6853) This adds the --unsafe-cors flag functionality. From: cosmos#5671 Co-authored-by: Marko <marbar3778@yahoo.com> * Merge PR cosmos#6855: Allow passing through Content-Type (needed for POST) * Merge PR cosmos#6861: Revert "Backport 0.39.1: Remove Custom JSON Marshaling for Accounts" * Merge PR cosmos#6869: Backport 0.39.1: Launchpad Migration cosmos#6829 * Update changelog and release notes * Update x/auth/legacy/v0_39/types.go * Update x/auth/legacy/v0_38/types.go * Merge PR cosmos#6938: Fix v0.39 migrate test * Merge PR cosmos#6937: Bump Tendermint to v0.33.7 * Update x/auth/legacy/v0_39/types.go Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com> * update RELEASE_NOTES.md * update changelog * test case with real genesis data (cosmos#6995) * incorporate Ethan Frey's suggestion * make format * Update go mod * Remove some ci files * Modify data for test * API server * Port telemetry * Initial metrics * Fix measure * Merge PR cosmos#6761: telemetry: use UTC() in wrappers * Remove file * Make format * Revert changes to client * Revert changes to client/lcd/root * Revert renames in client * Fix int64 panics * Revert "Revert renames in client" This reverts commit cc0a95d14c3212fa1c49f93789dd94e167427a57. * Revert "Revert changes to client/lcd/root" This reverts commit e3bb87bbacae13676c3a1f86f8d441d576b1f2ba. * Revert "Revert changes to client" This reverts commit 332cacba3242e503bcc4bffc3f6b25c1906efca4. Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com> Co-authored-by: Aleksandr Bezobchuk <aleks.bezobchuk@gmail.com> Co-authored-by: Alessio Treglia <alessio@tendermint.com> Co-authored-by: Ethan Frey <ethanfrey@users.noreply.github.com> Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> Co-authored-by: Jonathan Gimeno <jgimeno@gmail.com> Co-authored-by: Marko <marbar3778@yahoo.com> Co-authored-by: Adam Bozanich <adam.boz@gmail.com>
We are using cosmos sdk v0.38.4.
Here's the script that is producing the issue
Not all 15 transactions success in one block.
Also behavior is different for every run.
Sometimes first 5 transactions success and rest shows
"unauthorized: signature verification failed"
but sometime 1 transaction success and the rest shows"unauthorized: signature verification failed"
.If I run the script again, more transactions success. And it usually needed to run this script 3-4 times to send 15 transactions.
The most strange thing is, it shows unauthorized issue when tons of transactions are sent, but if I broadcast the failed transaction with same signed file, it success in other block.
This is testing after #5950 PR.
Need more fix on this.
It was not happening on v0.35.0
For now, we are trying to broadcast transaction until it success but it's not a beautiful way.
Please ask me questions if you don't have same issue and I will help you to reproduce this issue,
The text was updated successfully, but these errors were encountered: