fix(ha-bootstrap): pre-load config before election so node enters with correct config_tag
This commit is contained in:
parent
b8e6404fe2
commit
ad7ea12563
1 changed files with 15 additions and 0 deletions
|
|
@ -75,6 +75,21 @@ int myapp_run(myconf_t* myconf)
|
|||
iomgr_start(&(c.iomgr));
|
||||
vtaskmgr_start(&(c.vtaskmgr));
|
||||
|
||||
/* Pre-load config from disk if a local config file exists, so that this
|
||||
* node's config_tag is known before election. This allows the freshness gate
|
||||
* in am_i_primary_quorum() (Req 2.4) to work correctly: a node with a valid
|
||||
* local config will win over nodes that have no config (tag=0).
|
||||
* If no config file exists yet, config_version_tag stays 0 and the node will
|
||||
* defer the config fetch to after election via bootstrap_config_if_needed. */
|
||||
{
|
||||
int pre_rc = load_primary_config(&c);
|
||||
if (pre_rc == 0) {
|
||||
INFO("Pre-election config loaded: tag=%016llx",
|
||||
(unsigned long long)c.myconf->config_version_tag);
|
||||
}
|
||||
/* Ignore errors — node may have no config yet (first boot or standby) */
|
||||
}
|
||||
|
||||
/* Req 3.1–3.4: probe peers for config tags before election so that a node
|
||||
* joining an existing cluster knows to defer its config fetch to post-election
|
||||
* rather than participating as a first-boot candidate with no config. */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue