feat(raft-adapter-conformance): add term field to ReplConfigPushReply schema

Additive term @2 field on ReplConfigPushReply so a configuration-push
reply can carry the replying member's current term for term-discovery
(Requirement 7.4). Companion repl_config_push_reply_t struct field
added in typemap.h per the existing $C.mapname convention.
This commit is contained in:
Rongsong Shen 2026-07-29 09:09:56 +00:00
parent 34ab78d72d
commit a88c5fbf21
2 changed files with 9 additions and 0 deletions

View file

@ -491,6 +491,8 @@ struct repl_config_push_req_s {
struct repl_config_push_reply_s { struct repl_config_push_reply_s {
int accepted; /* 1 if standby accepted the push */ int accepted; /* 1 if standby accepted the push */
uint64_t version_tag; /* standby's current version tag after decision */ uint64_t version_tag; /* standby's current version tag after decision */
uint64_t term; /* replying member's current term (raft-adapter-
* conformance Req 7.4 term-discovery channel) */
}; };
struct upgrade_config_req_s { struct upgrade_config_req_s {

View file

@ -805,6 +805,13 @@ struct ReplConfigPushRequest $C.mapname("repl_config_push_req_t") {
struct ReplConfigPushReply $C.mapname("repl_config_push_reply_t") { struct ReplConfigPushReply $C.mapname("repl_config_push_reply_t") {
accepted @0: Bool $C.mapname("accepted"); accepted @0: Bool $C.mapname("accepted");
versionTag @1: UInt64 $C.mapname("version_tag"); versionTag @1: UInt64 $C.mapname("version_tag");
# raft-adapter-conformance Requirement 7.4: the replying member's current
# term, so a higher term can be discovered through this reply channel the
# same way it already is through heartbeat and WAL-NACK replies. Additive
# field (ordinal 2) — an old-code standby's reply decodes as term=0 on a
# new-code primary, which can never look like a higher term (terms start
# at 1), so no spurious adoption occurs under mixed-version rollout.
term @2: UInt64 $C.mapname("term");
} }
struct UpgradeConfigRequest $C.mapname("upgrade_config_req_t") { struct UpgradeConfigRequest $C.mapname("upgrade_config_req_t") {