-
Notifications
You must be signed in to change notification settings - Fork 3.8k
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
Store: Write regression tests & more benchmarks/tests #13224
Comments
A few points I would like to add. Not "regressions" but undefined / non-determinstic behavior I am aware of. When committing a multi-store, the order of committing each sub-store is random. If you change the write order within an iavl tree, that will change the hash. Now, in theory, each sub-store is it's own iavl store, so random write order between stores shouldn't have an effect, but this can make actually debugging out of order writes with tracestore near impossible and may introduce non-determinism. Some invariants we should enforce:
In the current codebase, hash matches for all cases I know of (but not sure it holds with fuzzing). But write order is random between substores, which makes tracing near impossible and is playing with fire with modules that are order-dependent hashes. Some example scenarios: All have 3 stores: apple, banana, carrot
|
@facundomedica what is the status of this? saw two prs but not sure when we can close this or move forward |
The text was updated successfully, but these errors were encountered: