-
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
Add and enforce specification invariant CommittableIndicesAreKnownSignaturesInv
#5764
Add and enforce specification invariant CommittableIndicesAreKnownSignaturesInv
#5764
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd be tempted to s/KnownSignatures/Signatures/ because it lightly implies the existence of unknown signatures?
Anyway, this is a good fix!
I use "Known" here for "in my log", where "unknown signatures" would be unknown as signatures by "me". Trying to make the invariant name precise, describing the 2 properties that are checked. |
@eddyashton that does make sense! |
add_committable_indices_are_sigs_tla_invariant@77685 aka 20231024.17 vs main ewma over 20 builds from 77015 to 77665 Click to see tablemain
add_committable_indices_are_sigs_tla_invariant
|
Changes to the spec in #5749 are failing because we store non-signatures in
committableIndices
.This adds a new invariant, stating that each node's
committableIndices
are within that node's log, and signatures, and updates theNoConflictAppendEntriesRequest
action so that this invariant holds. Previously the action was appending all new log entries tocommittableIndices
, now it only appends the signatures.