-
Notifications
You must be signed in to change notification settings - Fork 18
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
Fix rollback issue #4
Conversation
Important Auto Review SkippedReview was skipped due to path filters Files ignored due to path filters (2)
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
9938da1
to
17d30e9
Compare
The version of goleveldb that we were using before returned `nil` instead of `[]byte{}`. Unfortunately, this changes the behavior in v0.20.0 of `github.com/cosmos/iavl`. The sdk and iavl interpret `nil` as "doesn't exist", which meant that the iavl mistakenly couldn't rollback to past states if the tree was empty (which happened for modules that had an empty genesis state and no state updates thereafter). We aren't adding a regression test because this only occurs in goleveldb, which is technically hidden behind an interface.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Devil's advocacy: pinning a specific version as non buggy isn't very future proof.
Do we know if, eg, dependabot is configured here to flag issues that arise?
Completely agree. The package itself appears to be abandoned. I really hope we can move to a different db at some point, as a long-term solution. The main thing precluding us from doing that right now is the tx indexing, which depends on a comet-style db backend (to fix that, we'll need to vendor and rewrite this function) :( So we're stuck with this until we prioritize a db refactor. |
The version of goleveldb that we were using before returned
nil
instead of[]byte{}
. Unfortunately, this changes the behavior in v0.20.0 ofgithub.com/cosmos/iavl
. The sdk and iavl interpretnil
as "doesn't exist", which meant that the iavl mistakenly couldn't rollback to past states if the tree was empty (which happened for modules that had an empty genesis state and no state updates thereafter).