Skip to content

Consensus Trace Validation improvements #6183

@achamayou

Description

@achamayou

Resolved

  1. (Document lack of request payload validation in ctv #6187) All client requests are identical at the moment [request -> 42, contentType |-> TypeEntry]. Two ways to go here:
  • Fill them with something unique to distinguish them, perhaps a digest of the entry (with real traces in mind). We would need to capture them, and pre-fill the spec to produce ClientRequest from them.
  • Accept that the content does not matter to the consensus spec, and remove request altogether. Done.

To be discussed

  1. In IsSendAppendEntries, sent_idx does not match nextIndex[i][j]. Investigated, explained, and options proposed. @achamayou prefers options 1 or 2.

Requires Investigation:

  1. In IsSendAppendEntries Len(log'[logline.msg.state.node_id]) does not match logline.msg.state.last_idx. Needs investigation.
  2. In IsRcvAppendEntriesRequest, leadershipState[logline.msg.state.node_id] does not match ToLeadershipState[logline.msg.state.leadership_state]. Needs investigation.
  3. In IsRcvAppendEntriesRequest Len(log'[logline.msg.state.node_id]) does not match logline.msg.state.last_idx. Needs investigation.
  4. In IsAddConfiguration, committable indices, commit Index, membershipState and last_idx don't match. I looked at this, and in situations where we receive an AE range that contains a configuration at first followed by committable indices, recv_append_entries will update the committable indices in the spec, but not in the impl state, which then goes on to handle an add_configuration event on which state->committable_indices is empty. Needs investigation.
  5. In IsAdvanceCommitIndex, the commit_idx and last_idx don't match in the Follower case. Needs investigation.
  6. In IsRcvAppendEntriesResponse, the leadershipState does not match. Needs investigation.
  7. In IsRcvRequestVoteRequest, the leadershipState and last_idx do not match. Needs investigation.
  8. In IsExecuteAppendEntries, the commit_idx and last_idx do not match. Needs investigation.
  9. In IsRcvRequestVoteResponse, the leadershipState does not match. Needs investigation.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    tlaTLA+ specifications

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions