myxce/src
Rongsong Shen a9f283dc64
feat(component-failover-adoption): unify scheduler's dual connect paths into single pipeline
Replace scheduler's inline per-candidate loop and separate single-host
branch with one unified pipeline (mirrors worker's task 2.1 fix): build
exactly one validated candidate list, whether from --peers or synthesized
as a single candidate from the legacy default, then connect through the
shared xce_cluster_config_to_client_config() helper exactly once.

Adds sched_on_reconnect(), a rejoin callback that only sets a flag and
returns immediately (no I/O, no xcecli_* calls) to avoid the self-deadlock
worker hit in task 2.3 — registered via xcecli_set_reconnect_handler()
after xcecli_start(), since xcecli_start() resets any handler registered
earlier back to NULL.

Adds test_scheduler_connect.c: behavioral tests confirm no-peers and
single-candidate configs produce identical connect log sequences and that
unreachable candidates fail fast without retry loops; structural tests
source-scan scheduler.c to confirm a single xcecli_ctx_init() call site, a
single xcecli_join() call site, and a rejoin callback body free of I/O and
xcecli_* calls.

Live-validated against a 3-node HA controller cluster: a scheduler
configured with the standby listed first in --peers fails over via
xcecli's built-in retry-next mechanism to the primary and joins
successfully.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FYSEeLmzjtD4RLDuUDhLoK
2026-08-11 07:58:17 +00:00
..
autoscaler support shared libxce(for api server) 2026-01-19 11:02:49 +08:00
configs fix(admin-config-tool): resolve xceadmin config build warnings 2026-07-23 09:10:14 +00:00
controller feat(controller): OPCode_probeConfigTag handler with Request envelope reply (bug-1506) 2026-08-10 10:00:08 +00:00
docs update documents 2026-08-10 17:51:51 +08:00
frontend fix(security): replace exposed admin credential with placeholder 2026-07-31 03:31:23 +00:00
include feat(component-failover-adoption): add candidate-list-to-client-config helper 2026-08-11 04:57:31 +00:00
lib feat(component-failover-adoption): add candidate-list-to-client-config helper 2026-08-11 04:57:31 +00:00
nixSupport feat(scheduler-core): implement REPL execution control (task 12.1) 2026-08-07 08:17:35 +00:00
scheduler feat(component-failover-adoption): unify scheduler's dual connect paths into single pipeline 2026-08-11 07:58:17 +00:00
schema feat(controller): OPCode_probeConfigTag handler with Request envelope reply (bug-1506) 2026-08-10 10:00:08 +00:00
tools feat(component-failover-adoption): unify worker's dual connect paths into single pipeline 2026-08-11 05:42:48 +00:00
worker feat(component-failover-adoption): validate worker thread isolation, fix rejoin bugs found by E2E 2026-08-11 07:29:41 +00:00
xceadmin fix(xceadmin): probe_config uses Request envelope + follow_redirects (bug-1506, bug-1507) 2026-08-10 09:53:48 +00:00
flake.lock fix librtti package leak issue 2026-07-27 15:31:50 +08:00
flake.nix save works 2026-03-04 18:18:53 +08:00
meson.build feat(admin-config-tool): wire xceadmin into meson + nix build 2026-07-22 10:46:45 +00:00
meson.options Merge Go frontend (apiserver + xcecli) into meson build 2026-04-14 11:23:18 +08:00