Skip to content

chore(upgrades): verify v4 upgrade#263

Merged
julienrbrt merged 18 commits intomainfrom
julien/upgrade
Feb 13, 2026
Merged

chore(upgrades): verify v4 upgrade#263
julienrbrt merged 18 commits intomainfrom
julien/upgrade

Conversation

@julienrbrt
Copy link
Collaborator

@julienrbrt julienrbrt commented Jan 19, 2026

Closes: #242

Proceed to do the v4 upgrades verification and implements possible missing migrations.

ATOMONED_BIN=./build/atomoned-v3 ATOMONED_NEW_BIN=./build/atomoned ./contrib/scripts/upgrade-node.sh

error during handshake: error on replay: collections: encoding error: value decode: proto: wrong wireType = 2 for field QuorumCheckCount

@julienrbrt julienrbrt marked this pull request as ready for review January 27, 2026 15:58
keyTable := ibcclienttypes.ParamKeyTable()
keyTable.RegisterParamSet(&ibcconnectiontypes.Params{})
paramsKeeper.Subspace(ibcexported.ModuleName).WithKeyTable(keyTable)
paramsKeeper.Subspace(icahosttypes.SubModuleName).WithKeyTable(icahosttypes.ParamKeyTable())
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does that mean the IBC params were misconfigured ? What are the consequences ?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it was introduced in v4, as the params key table wasn't added to x/params automatically in the new version of ibc.
consequence would have been upgrade to not pass with exactly this error message: #263 (review) :D

@tbruyelle
Copy link
Collaborator

error during handshake: error on replay: collections: encoding error: value decode: proto: wrong wireType = 2 for field QuorumCheckCount

Is this the error you get if you upgrade without the migration of this PR ?

@julienrbrt
Copy link
Collaborator Author

error during handshake: error on replay: collections: encoding error: value decode: proto: wrong wireType = 2 for field QuorumCheckCount

Is this the error you get if you upgrade without the migration of this PR ?

Yes! If you run the script before, you should get this. If you run it after this PR it should pass.

Copy link
Collaborator

@tbruyelle tbruyelle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested with your nice script:
OLD=v3.2.0 NEW=main -> FAILURE (not sure exactly why, I dont understand where this AllowedClients comes from)

panic: parameter AllowedClients not registered

goroutine 1 [running]:
github.com/cosmos/cosmos-sdk/x/params/types.Subspace.checkType({{0x55bd950, 0xc00230c4b0}, 0xc001fc8010, {0x556e7f8, 0xc001ed6b60}, {0x556e848, 0xc001ed6c60}, {0xc0014fe670, 0x3, 0x8}, ...}, ...)
	github.com/cosmos/cosmos-sdk@v0.53.0/x/params/types/subspace.go:171 +0x174
github.com/cosmos/cosmos-sdk/x/params/types.Subspace.Get({{0x55bd950, 0xc00230c4b0}, 0xc001fc8010, {0x556e7f8, 0xc001ed6b60}, {0x556e848, 0xc001ed6c60}, {0xc0014fe670, 0x3, 0x8}, ...}, ...)
	github.com/cosmos/cosmos-sdk@v0.53.0/x/params/types/subspace.go:105 +0x85
github.com/cosmos/cosmos-sdk/x/params/types.Subspace.GetParamSet({{0x55bd950, 0xc00230c4b0}, 0xc001fc8010, {0x556e7f8, 0xc001ed6b60}, {0x556e848, 0xc001ed6c60}, {0xc0014fe670, 0x3, 0x8}, ...}, ...)
	github.com/cosmos/cosmos-sdk@v0.53.0/x/params/types/subspace.go:240 +0x11e
github.com/cosmos/ibc-go/v10/modules/core/02-client/keeper.Migrator.MigrateParams({_}, {{0x559fb10, 0x7a13900}, {0x55bea20, 0xc0023776c0}, {{0x0, 0x0}, {0xc002e7e290, 0x8}, 0x1e, ...}, ...})
	github.com/cosmos/ibc-go/v10@v10.2.0/modules/core/02-client/keeper/migrations.go:37 +0x8b
github.com/cosmos/ibc-go/v10/modules/core.AppModule.RegisterServices.func1({{0x559fb10, 0x7a13900}, {0x55bea20, 0xc0023776c0}, {{0x0, 0x0}, {0xc002e7e290, 0x8}, 0x1e, {0xd0e34eb, ...}, ...}, ...})
	github.com/cosmos/ibc-go/v10@v10.2.0/modules/core/module.go:162 +0x5e
github.com/cosmos/cosmos-sdk/types/module.(*configurator).runModuleMigrations(_, {{0x559fb10, 0x7a13900}, {0x55bea20, 0xc0023776c0}, {{0x0, 0x0}, {0xc002e7e290, 0x8}, 0x1e, ...}, ...}, ...)
	github.com/cosmos/cosmos-sdk@v0.53.0/types/module/configurator.go:143 +0x2d6
github.com/cosmos/cosmos-sdk/types/module.Manager.RunMigrations({0xc0020b8330, {0xc003491b80, 0x15, 0x15}, {0xc002c4d080, 0x17, 0x17}, {0xc001ed72a0, 0x1, 0x1}, ...}, ...)
	github.com/cosmos/cosmos-sdk@v0.53.0/types/module/module.go:725 +0x816
github.com/atomone-hub/atomone/app/upgrades/v4.CreateUpgradeHandler.func1({0x559fbf0, 0xc002bcca88}, {{0xc00237e400, 0x2}, {0x0, 0x0, 0x0}, 0x1e, {0x0, 0x0}, ...}, ...)
	github.com/atomone-hub/atomone/app/upgrades/v4/upgrades.go:27 +0xc5
cosmossdk.io/x/upgrade/keeper.Keeper.ApplyUpgrade({{0x7ffe4bd009a0, 0x1b}, 0xc0019ee180, {0x554b2e0, 0xc001fc8560}, {0x55bd950, 0xc00230c4b0}, 0xc0019efbc0, {0x5570b00, 0xc002f70248}, ...}, ...)
	cosmossdk.io/x/upgrade@v0.2.0/keeper/keeper.go:426 +0x111
cosmossdk.io/x/upgrade.PreBlocker({0x559fbf0, 0xc002bcc008}, 0xc002b1b5e0)
	cosmossdk.io/x/upgrade@v0.2.0/abci.go:105 +0xeec
cosmossdk.io/x/upgrade.AppModule.PreBlock(...)
	cosmossdk.io/x/upgrade@v0.2.0/module.go:166
github.com/cosmos/cosmos-sdk/types/module.(*Manager).PreBlock(_, {{0x559fb10, 0x7a13900}, {0x55bea20, 0xc0023776c0}, {{0x0, 0x0}, {0xc002e7e290, 0x8}, 0x1e, ...}, ...})
	github.com/cosmos/cosmos-sdk@v0.53.0/types/module/module.go:757 +0xd2
github.com/atomone-hub/atomone/app.(*AtomOneApp).PreBlocker(...)
	github.com/atomone-hub/atomone/app/app.go:328
github.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).preBlock(0xc002f70248, 0xc00145fb00)
	github.com/cosmos/cosmos-sdk@v0.53.0/baseapp/baseapp.go:714 +0x165
github.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).internalFinalizeBlock(0xc002f70248, {0x559fb10, 0x7a13900}, 0xc00145fb00)
	github.com/cosmos/cosmos-sdk@v0.53.0/baseapp/abci.go:774 +0xdda
github.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).FinalizeBlock(0xc002f70248, 0xc00145fb00)
	github.com/cosmos/cosmos-sdk@v0.53.0/baseapp/abci.go:908 +0x16c
github.com/cosmos/cosmos-sdk/server.cometABCIWrapper.FinalizeBlock(...)
	github.com/cosmos/cosmos-sdk@v0.53.0/server/cmt_abci.go:44
github.com/cometbft/cometbft/abci/client.(*localClient).FinalizeBlock(0xe000000055c3460?, {0x559fd78?, 0x7a13900?}, 0xc0?)
	github.com/cometbft/cometbft@v0.38.21/abci/client/local_client.go:185 +0xc8
github.com/cometbft/cometbft/proxy.(*appConnConsensus).FinalizeBlock(0xc00138b1d0, {0x559fd78, 0x7a13900}, 0xc00145fb00)
	github.com/cometbft/cometbft@v0.38.21/proxy/app_conn.go:104 +0x157
github.com/cometbft/cometbft/state.(*BlockExecutor).applyBlock(_, {{{0xb, 0x0}, {0xc002d43488, 0x7}}, {0xc002d434a0, 0x8}, 0x1, 0x1d, {{0xc002d3d4e0, ...}, ...}, ...}, ...)
	github.com/cometbft/cometbft@v0.38.21/state/execution.go:227 +0x519
github.com/cometbft/cometbft/state.(*BlockExecutor).ApplyBlock(_, {{{0xb, 0x0}, {0xc002d43488, 0x7}}, {0xc002d434a0, 0x8}, 0x1, 0x1d, {{0xc002d3d4e0, ...}, ...}, ...}, ...)
	github.com/cometbft/cometbft@v0.38.21/state/execution.go:222 +0x1d9
github.com/cometbft/cometbft/consensus.(*Handshaker).replayBlock(_, {{{0xb, 0x0}, {0xc002d43488, 0x7}}, {0xc002d434a0, 0x8}, 0x1, 0x1d, {{0xc002d3d4e0, ...}, ...}, ...}, ...)
	github.com/cometbft/cometbft@v0.38.21/consensus/replay.go:535 +0x246
github.com/cometbft/cometbft/consensus.(*Handshaker).ReplayBlocksWithContext(_, {_, _}, {{{0xb, 0x0}, {0xc002d43488, 0x7}}, {0xc002d434a0, 0x8}, 0x1, ...}, ...)
	github.com/cometbft/cometbft@v0.38.21/consensus/replay.go:434 +0x77a
github.com/cometbft/cometbft/consensus.(*Handshaker).HandshakeWithContext(0xc0035c3a18, {0x559fcd0, 0xc004556550}, {0x55c4d78, 0xc0029eb260})
	github.com/cometbft/cometbft@v0.38.21/consensus/replay.go:274 +0x425
github.com/cometbft/cometbft/node.doHandshake({_, _}, {_, _}, {{{0xb, 0x0}, {0xc002d43488, 0x7}}, {0xc002d434a0, 0x8}, ...}, ...)
	github.com/cometbft/cometbft@v0.38.21/node/setup.go:186 +0x18b
github.com/cometbft/cometbft/node.NewNodeWithContext({0x559fcd0, 0xc004556550}, 0xc0017ccc80, {0x557f850, 0xc002ef8a00}, 0xc0044ceac0, {0x554a3c0, 0xc0045ba390}, 0xc0035c45c0, 0x50f5ea8, ...)
	github.com/cometbft/cometbft@v0.38.21/node/node.go:360 +0x62e
github.com/cosmos/cosmos-sdk/server.startCmtNode({0x559fcd0, 0xc004556550}, 0xc0017ccc80, {0x55df910, 0xc001a6ea88}, 0xc001300d60)
	github.com/cosmos/cosmos-sdk@v0.53.0/server/start.go:378 +0x3dd
github.com/cosmos/cosmos-sdk/server.startInProcess(_, {{{0xc000e1ec18, 0x16}, 0x0, {0xc002cedd80, 0x7}, {0x3c4dbad, 0x1}, {0x3c4dbad, 0x1}, ...}, ...}, ...)
	github.com/cosmos/cosmos-sdk@v0.53.0/server/start.go:324 +0x17a
github.com/cosmos/cosmos-sdk/server.start(_, {{0x0, 0x0, 0x0}, {0x55c9538, 0xc002ca4450}, 0x0, {0xc002c53ae0, 0x8}, {0x55df848, ...}, ...}, ...)
	github.com/cosmos/cosmos-sdk@v0.53.0/server/start.go:241 +0x2c7
github.com/cosmos/cosmos-sdk/server.StartCmdWithOptions.func2.1()
	github.com/cosmos/cosmos-sdk@v0.53.0/server/start.go:199 +0x63
github.com/cosmos/cosmos-sdk/server.wrapCPUProfile(0xc001300d60, 0xc0016a39e8)
	github.com/cosmos/cosmos-sdk@v0.53.0/server/start.go:571 +0x1b2
github.com/cosmos/cosmos-sdk/server.StartCmdWithOptions.func2(0xc001d56008, {0xc002c6ac00?, 0x0?, 0x4?})
	github.com/cosmos/cosmos-sdk@v0.53.0/server/start.go:198 +0x212
github.com/spf13/cobra.(*Command).execute(0xc001d56008, {0xc002c6abc0, 0x4, 0x4})
	github.com/spf13/cobra@v1.9.1/command.go:1015 +0xaaa
github.com/spf13/cobra.(*Command).ExecuteC(0xc000f5ef08)
	github.com/spf13/cobra@v1.9.1/command.go:1148 +0x46f
github.com/spf13/cobra.(*Command).Execute(...)
	github.com/spf13/cobra@v1.9.1/command.go:1071
github.com/spf13/cobra.(*Command).ExecuteContext(...)
	github.com/spf13/cobra@v1.9.1/command.go:1064
github.com/cosmos/cosmos-sdk/server/cmd.Execute(0xc000f5ef08, {0x0, 0x0}, {0x7ffe4bd009a0, 0x1b})
	github.com/cosmos/cosmos-sdk@v0.53.0/server/cmd/execute.go:34 +0x187
main.main()
	github.com/atomone-hub/atomone/cmd/atomoned/main.go:16 +0x33

OLD=v3.2.0 NEW=julien/upgrade -> ALL GOOD

@julienrbrt
Copy link
Collaborator Author

Something fishy is happening with the E2E. Will check!

@tbruyelle
Copy link
Collaborator

Something fishy is happening with the E2E. Will check!

@julienrbrt I got the same pb with my PR, try to cherry-pick the 2 last commits https://github.com/atomone-hub/atomone/pull/261/commits

@julienrbrt
Copy link
Collaborator Author

Something fishy is happening with the E2E. Will check!

@julienrbrt I got the same pb with my PR, try to cherry-pick the 2 last commits https://github.com/atomone-hub/atomone/pull/261/commits

Oh great! Will do

tbruyelle and others added 5 commits February 12, 2026 08:49
Change waiting time from 15 to 20s.

Given that voting peruid is set to 15s, waiting 15s might be too short
depending on what happened before that call. The reason why this is
triggered in that PR is unknown though.
Also fix wrong usage of Eventually (currentHeight is not updated
according to inline func exection because it is interpreted earlier)
@julienrbrt julienrbrt merged commit 155f089 into main Feb 13, 2026
14 checks passed
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 this pull request may close these issues.

x/gov: add migration for v4

2 participants