-
Notifications
You must be signed in to change notification settings - Fork 4.1k
feat: support IAVL v2 #24960
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
base: main
Are you sure you want to change the base?
feat: support IAVL v2 #24960
Conversation
defer st.metrics.MeasureSince("store", "iavl", "get") | ||
value, err := st.tree.Get(key) | ||
if err != nil { | ||
panic(err) |
Check warning
Code scanning / CodeQL
Panic in BeginBock or EndBlock consensus methods Warning
defer st.metrics.MeasureSince("store", "iavl", "has") | ||
has, err := st.tree.Has(key) | ||
if err != nil { | ||
panic(err) |
Check warning
Code scanning / CodeQL
Panic in BeginBock or EndBlock consensus methods Warning
defer st.metrics.MeasureSince("store", "iavl", "delete") | ||
_, _, err := st.tree.Remove(key) | ||
if err != nil { | ||
panic(err) |
Check warning
Code scanning / CodeQL
Panic in BeginBock or EndBlock consensus methods Warning
func (st *Store) Iterator(start, end []byte) types.Iterator { | ||
iterator, err := st.tree.Iterator(start, end, true) | ||
if err != nil { | ||
panic(err) |
Check warning
Code scanning / CodeQL
Panic in BeginBock or EndBlock consensus methods Warning
func (st *Store) ReverseIterator(start, end []byte) types.Iterator { | ||
iterator, err := st.tree.Iterator(start, end, false) | ||
if err != nil { | ||
panic(err) |
Check warning
Code scanning / CodeQL
Panic in BeginBock or EndBlock consensus methods Warning
So, it seems like we're running into an issue with iterators in IAVL v2. To test this, I have done two runs of the Without regular IAVL, we always see this in the logs:
With IAVL v2, the first time this code runs, it looks the same as above, but the second time we see this and an exception trace:
It appears that IAVL v2 iterator is going past its stop point and iterating into the key |
Description
Closes: #XXXX