-
Notifications
You must be signed in to change notification settings - Fork 973
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
Core crash caused by LedgerCloseMeta during upgrade of protocol #3909
Comments
(From the linked issue) There are a couple ways we can fix this:
I am not sure how 1 would work in this context: we really do not want to start evicting entries in that upgrade ledger: changing So it seems that option 2 is the safest thing to do. Only thing we need to be sure of is that |
Actually option 2 is a bit ugly as observing the meta should not change protocol behavior, we may just need to add a new argument to |
I think @MonsieurNicolas alluded to this in his comment, but just to re-iterate here: we should ensure that no eviction logic (or any protocol 20 code for that matter) is called at all at the upgrade ledger, not just meta-related functionality. |
Issue Description
Core crashes when an upgrading ledger is constructed with version N but is amended with version N+1 .
@marta-lokhova pointed out the problematic assert:
stellar-core/src/ledger/LedgerCloseMetaFrame.cpp
Line 208 in 2b283bd
The problem is that on the upgrade ledger we bump ledger version, however we still emit old-style meta, which conflicts with the assert.
Steps to reproduce
Described by @tamirms in stellar/go#5035 (comment)
Detail description
Summary of the issue described by @graydon in stellar/go#5035 (comment)
The text was updated successfully, but these errors were encountered: