docs: update impl-status — create_lost_and_found done, API guard done, fix malformed row
This commit is contained in:
parent
bc921666de
commit
609314efa4
1 changed files with 6 additions and 3 deletions
|
|
@ -1,7 +1,7 @@
|
|||
# Config Replication — Implementation Status
|
||||
|
||||
> **Branch**: `persistent_ha`
|
||||
> **Date**: 2026-05-13
|
||||
> **Date**: 2026-05-13 (updated)
|
||||
> **Design doc**: `config-replication-design.md`
|
||||
|
||||
---
|
||||
|
|
@ -28,6 +28,7 @@ from the primary on every startup, eliminating manual per-node provisioning.
|
|||
| `handle_controller_join()` | ✅ Done | `8f4db30` | Registers endpoint in `standby_endpoints` under lock |
|
||||
| WAL record-count `schedule_checkpoint()` | ✅ Done | `a95476b` | Idempotent CAS; coalesced via `delaymgr` 1s delay; bounds `persist_recover` to ≤10k records |
|
||||
| `typemap.h` union arms + capnp shims | ✅ Done | `491c255` | `replconfigreplymsg`, `upgradeconfigreplymsg`, etc. wired |
|
||||
| API server rejects `lost_and_found` job submissions | ✅ Done | `bc92166` | `preCheckJobRequest()` returns "internal recovery queue" error before store lookup; 3 tests in `jobs_test.go` |
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -42,7 +43,7 @@ design doc).
|
|||
|---|---|---|
|
||||
| `handle_upgrade_config()` | ✅ Compiled, gated | SHA-256 transit check, Cap'n Proto decode, generation increment, disk save, restart signal. Active only when `CONF_ENABLE_UPGRADE_CONFIG=1` |
|
||||
| `push_config_to_standbys()` | ⚠ Stub (returns 0) | Wire protocol for `OP_replConfigPush` deferred — standbys catch up via pull on reconnect |
|
||||
| `create_lost_and_found()` | ⚠ Stub (no-op) | Synthetic queue/host for WAL recovery with unknown IDs; requires kvmgr integration |
|
||||
| `create_lost_and_found()` | ✅ Done | `91e66b8` | Inserts synthetic queue via `create_queue()` and host via `makeWorker()` before `persist_recover()`; gated with `#ifndef XCE_TESTING` for unit test binary |
|
||||
|
||||
**Prerequisites before enabling** (`CONF_ENABLE_UPGRADE_CONFIG=1`):
|
||||
1. `validate_host()` implemented with real CN allowlist check (see `FUTURE_WORK.md §6`)
|
||||
|
|
@ -69,7 +70,6 @@ design doc).
|
|||
| Item | Severity | Tracked |
|
||||
|---|---|---|
|
||||
| `push_config_to_standbys()` is a no-op — standbys get new config on reconnect pull, not pushed immediately | LOW | `FUTURE_WORK.md` |
|
||||
| `create_lost_and_found()` is a no-op — WAL recovery routes unknown IDs silently without synthetic queue | LOW | `FUTURE_WORK.md` |
|
||||
| `do_one_config_fetch()` stub burns ~47s on standby startup (all 20 retry attempts hit -ENOSYS) until fully wired | MEDIUM | Fix: wire `send_repl_config_request` over the pre-Phase-2 SSL connection |
|
||||
| Heartbeat listener (`start_heartbeat_listener`) is a no-op stub — simultaneous-boot symmetry relies on priority step only | LOW | `FUTURE_WORK.md §7` |
|
||||
| Peers cross-validation hash in `OP_heartbeat` not implemented | LOW | `FUTURE_WORK.md` |
|
||||
|
|
@ -103,3 +103,6 @@ design doc).
|
|||
| `src/controller/testsuite/test_ha_role.c` | +3 election probing tests |
|
||||
| `src/controller/testsuite/test_persist_wal.c` | +3 WAL bound tests |
|
||||
| `src/controller/testsuite/controller_test.c` | New suites registered |
|
||||
| `src/frontend/apiserver/controllers/jobs.go` | +reserved-name guard in `preCheckJobRequest()` |
|
||||
| `src/frontend/apiserver/controllers/jobs_test.go` | **New** — 3 tests: lost_and_found rejected, normal queue passes, empty queue passes |
|
||||
| `src/docs/config-replication-impl-status.md` | **New** — this file |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue