docs(controller-peers-env-fallback): design re-validation fixes
Iterated design review until clean (GO): - Controller main() calls mylog_fini() before every early return, so log lines written by tlog's background thread survive the exit. - cluster_init_phase1() keeps its candidates_count > 0 guard around the new xce_peers_find_identity() call (standalone stays my_priority 0). - xceadmin adds the "(from $VAR)" source note only to network errors, not to local cluster-bin file errors (OSError with filename set). - Regression script: scratch --workdir/--certdir/--logfile per daemon, refuses to run if a local cluster is up (port 9990, worker socket), --sim case asserts the sim branch ran, 2.3 patches follow_redirects, 2.8 malformed-entry cases use a readable cluster-bin file, wrapper test expects PEERS_STR form. - Two existing scripts that start xce_scheduler without --peers will unset XCE_CONTROLLER_PEERS; --interactive wording corrected. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
bd1f5175a1
commit
6160ca299f
3 changed files with 52 additions and 16 deletions
|
|
@ -15,7 +15,7 @@
|
|||
- **Sources Consulted**: `src/controller/main.c` (~L403-429), `src/scheduler/src/main.c` (~L380-429), `src/worker/src/main.c` (~L389-475), buglog.json bug-1457.
|
||||
- **Findings**:
|
||||
- controller: `if (arguments.peers_str) {...}` — omitting it is controller's own supported single-node/standalone primary path (bug-1457 fixed a startup-ordering defect in this exact path in 2026-07; the path itself is intentional, not an error).
|
||||
- scheduler: `if (arguments.peers) {...} else { INFO("No --peers flag; using single-controller path, ...") }` — same shape, explicitly logged as intentional. Critically, scheduler's `--sim` mode `return`s **before** this block is ever reached (`main.c` ~L380-400) — an env-var-supplied peers default therefore cannot affect `--sim`/`--interactive` replay mode at all, by construction, with no special-casing needed.
|
||||
- scheduler: `if (arguments.peers) {...} else { INFO("No --peers flag; using single-controller path, ...") }` — same shape, explicitly logged as intentional. Critically, scheduler's `--sim` mode `return`s **before** this block is ever reached (`main.c` ~L380-400) — an env-var-supplied peers default therefore cannot affect `--sim` replay mode (with or without `--interactive`) at all, by construction, with no special-casing needed.
|
||||
- worker: `if (peers_str) {...}` — identical shape.
|
||||
- All three: an invalid `--peers` value is a hard parse-error (`xce_parse_peers() != 0` → `fprintf(stderr, ...); return 1;`), never a silent fallback.
|
||||
- **Implications**: The env-var fallback only needs to be consulted at the single point each component already gates on `peers_str`/`peers` being non-NULL — no new mode-interaction risk exists, and `--sim` is unaffected without any extra guard.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue