-
Notifications
You must be signed in to change notification settings - Fork 217
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
Model max_uncommitted_tx_count
of raft.h in abs.tla
#6508
Conversation
with MaxUncommittedCount (see max_uncommitted_tx_count in raft.h) that restricts the length by which a log may be extended in each step. Signed-off-by: Markus Alexander Kuppe <[email protected]>
(Maintains the checked state space) Signed-off-by: Markus Alexander Kuppe <[email protected]>
This constraint is too simplistic, and does not accurately represent what max uncommitted tx count does. The current behaviour is that new user and governance transactions are rejected, but signatures and nodes frontend transactions (joins, jwt refresh...) do not count towards that limit. Applying that cap to the overall committed growth per step is incorrect. I can see that it is necessary to have a cap for model checking to work, but conflating it with max uncommitted tx is not accurate, and may result in confusion and trace validation failures. |
The documentation of "Maximum number of uncommitted transactions allowed before the primary refuses new transactions. Unlimited if set to 0." Regarding
Actually, unbounded sequences create one less constraint in the (pending) axiomatic definitions in abs.tla. |
I'll improve the documentation, but it is not always safe to seize a sentence in the documentation and turn it into a property.
No, there at least two write transactions that commonly happen on the node frontend, and would be The spec would need to be substantially more detailed to capture this correctly, but we already struggle to get useful model checking at the current level of detail, so I am very skeptical of going in that direction.
Great, let's get this of this constraint then. No point having something that's both inaccurate and slows down the model checking. |
Pull request was closed
Align spec with CCF by replacing global upper bound
MaxLogLength
withMaxUncommittedCount
(seemax_uncommitted_tx_count
in raft.h) that restricts the length by which a log may be extended in each step.These two commits were previously part of #6475. @heidihoward approved them in #6475 (comment).