-
Notifications
You must be signed in to change notification settings - Fork 23
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
ChainDB q-s-m failure with GetIsValid
(again)
#123
Comments
My suspicion is that the model is incorrect in this case: it fails to mark a block as valid, even though the SUT eventually validates the block and finds that it is valid. See the model transitions below: Full log
Model transitions
As soon as F is added to the unselected fork, the fork becomes longer than the selected chain, and is therefore eligible for chain selection. Part of trying to switch to this fork is to validate blocks D, E and F in order. The SUT sees that D is valid, but that E is invalid. As such, it marks E as invalid, but it now also knows that D is valid. Somehow, the model is not recording anywhere that D is valid. |
…repancy (#284) This PR is the third round of fighting with a ChainDB q-s-m model vs SUT discrepancy for `getIsValid`, see #123 for the history. The two previous rounds either introduced new bugs or left certain bugs unaddressed. The approach of this PR is to highlight the *cumulative* change over all of these different fixes compared to the initial implementation is. For this, we first revert IntersectMBO/ouroboros-network#3651, IntersectMBO/ouroboros-network#3743 and IntersectMBO/ouroboros-network#3990 in the first four commits. It is recommended to skip these while reviewing. The fifth commit in this PR is then fixing the bug in one go with the benefit of hindsight, see its commit description for details. Closes #123
To reproduce, run
cabal run storage-test -- -p 'ChainDB q-s-m' --quickcheck-replay=616511
on fc1245d (master at time of writing), which yields (simplified):
Full logs
This seems like exactly the same thing as IntersectMBO/ouroboros-network#3689 and the even older IntersectMBO/ouroboros-network#3389. I really thought that IntersectMBO/ouroboros-network#3990 would fix this for good, so maybe this is a different issue, or it regressed again since then?
The text was updated successfully, but these errors were encountered: