-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
statesync: app version is not correctly set #10791
Comments
Looking at state sync we should be calling abci.info afterwards to update any versions but doesn't seem we do. |
Is there an app version mismatch fix for nodes using a different db backend such as rocksdb? |
this isn't a db issue, but a software issue. |
I haven't had a chance to dive in-depth, but there is a chance that it may need to be. |
Oops, my bad, I deleted the comment mistakenly. For reference it was:
|
We are seeing the same issue now after the first upgrade (v0.44+) |
It did not work. |
We are seeing a similar error using Tendermint v0.34.21. It calls the ABCI InfoSync method, but the AppVersion in the response is 0 and trigger the error while trying to restore the snapshot. |
Summary of Bug
Tendermint, at the end of statesync, will call the
Info
ABCI call as a means of verifying that the app hash it has matches to the one the application has (thus verifying that the correct state was synced).https://github.com/tendermint/tendermint/blob/20c547a901eb003912bd1b34ff45d34ac118b5f8/internal/statesync/syncer.go#L352-L356
In doing so the application also returns its app version which Tendermint uses to set its own internal state (which it doesn't really need to). Currently it seems this is not being set correctly and the application is always returning a 0 app version. In the case, where the actual version is not 0 this will cause the node to halt with the error message:
This means that any application with a non zero app version can't state sync atm. One example I experienced was using osmosis. I am not sure of others.
Version
This is on
v0.44.3
but I assume that it also affects earlier versions as well.Steps to Reproduce
Try state sync a node on Osmosis or any application that has a non-nil app version. Cosmos Hub has 0 as its app version.
Work arounds
The node that has just state synced will have everything correct except the app version. As a workaround, all that is needed is to modify the app version within the
State
struct that Tendermint keeps. I have written up a command on a branch that can perform this operation for node operators that are stuck:NOTE: This is not an official solution, it is a custom patch for the v0.34 line. Make sure you set the correct
--home
flag.For Admin Use
The text was updated successfully, but these errors were encountered: