forked from lei.chen/myxce
feat(ha-term-safety): restore controller build + wire vote/AE term wire fields (tasks 1.1, 1.2)
1.1: WalCatchupEntry gains term@4/prevLogIndex@5/prevLogTerm@6 (append-only). 1.2: RequestVote/PreVote gain lastLogTerm@4/lastLogIndex@5; cluster.c vote callers fixed to the extended library arity (RESTORES xce_controller + controller_unit_test compile+link, broken by the raft-commit-safety signature extension); ha.c emits the candidate's last-log tuple on send. 5 minimal stub log/commit callbacks wired into s_real_cbs so raft_init's new non-NULL requirement is satisfied — tasks 2.x replace them with real bodies; the logOk freshness gate is inert until the term seam (1.3) + on_get_entry_term (2.2). Pre-existing test_repl_unit.c wal_catchup -EAGAIN failures + ASAN leaks are an overlayfs /tmp fsync env artifact (bug-850), not from this task (untouched paths; append-only schema cannot affect the @3 entries-list decode). Build/baseline isolation is blocked by a c-capnproto flake-hash drift — see Implementation Notes.
This commit is contained in:
parent
e8e41752c0
commit
004a40bb3b
9 changed files with 264 additions and 9 deletions
|
|
@ -179,6 +179,11 @@ typedef struct {
|
|||
char *candidate_id;
|
||||
uint64_t config_tag;
|
||||
uint64_t last_log_lsn;
|
||||
/* Raft (lastLogTerm, lastLogIndex) freshness tuple (ha-term-safety task 1.2):
|
||||
* feeds the library logOk gate, distinct from config_tag/last_log_lsn which
|
||||
* drive the application freshness gate. last_log_index == candidate log_len. */
|
||||
uint64_t last_log_term;
|
||||
uint64_t last_log_index;
|
||||
} request_vote_req_t;
|
||||
|
||||
typedef struct {
|
||||
|
|
@ -348,6 +353,13 @@ struct wal_catchup_entry {
|
|||
* capn_free(); malloc'd, owned, freed by xce_free_request(). */
|
||||
uint8_t *raw_payload;
|
||||
size_t raw_payload_len;
|
||||
/* Raft AppendEntries term fields (ha-term-safety task 1.1, Req 1.3/1.4).
|
||||
* term == this entry's term stamp; prev_log_index == lsn-1; prev_log_term ==
|
||||
* term of the entry at prev_log_index (0 if absent). Consumed by the log
|
||||
* callbacks (tasks 2.x) for the AppendEntries logOk / truncation decision. */
|
||||
uint64_t term;
|
||||
uint64_t prev_log_index;
|
||||
uint64_t prev_log_term;
|
||||
};
|
||||
|
||||
/* ── Persistence Cap'n Proto mapped types (P0-9) ─────────────────────
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue