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.

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