chore: gitea-sync --ids, sync recent bugs (#264-#286), refresh STATUS.md
gitea-sync.py: --ids syncs named bugs regardless of dates (OR'd with --since). Bulk triage bumped last_seen/status_updated across most of the buglog, so --since 2026-09-01 matched ~1150 bugs while recently fixed older bugs (bug-1798..1804, 1714, 1754, 1850, 1854) could never be reached. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
e3f5a813c6
commit
ff4e2cb84e
5 changed files with 90 additions and 20 deletions
|
|
@ -7,20 +7,20 @@
|
|||
|
||||
## ✅ Done
|
||||
|
||||
- **scheduler-sim-eager-reconciliation spec, revision 4** (2026-09-12, commit `25fb5c11`): captured jobs' `job->state` now set to `JOB_STAT_RUN` synchronously at dispatch capture (`sim_reconcile_unaccounted_jobs`), mirroring normal-mode's `sched_commit_decision` semantics (bug-1624/bug-1804). All 4 revision tasks in `tasks.md` checked off.
|
||||
- **bug-1799/1801**: fixed sim replay resInUse over-commit — `sched_account_jobs`'s per-round re-derive now skips RECONCILING/UNAVAIL workers (matches `core_reset_workers`'s existing bug-1751 skip). Previously a worker's `used` slots could exceed its own `value` capacity after a resync replay (observed 26 used vs. 22 capacity).
|
||||
- **bug-1800**: bytes-valued CONSUMABLE resources (mem/swp/tmp) in `info worker` now render with human-scaled units, matching maxmem/maxswap/maxtmp's existing formatting.
|
||||
- **bug-1802/1803**: `break ANY` breakpoint kind added then reverted after live feedback it over-fired inside busy sessions; replaced with a prescan-based "next non-dummy session" hint surfaced in `info summary`.
|
||||
- Full scheduler test suite verified GREEN: 77/77 tests pass (asan profile, `xce.build`), confirmed via fresh build+test run before committing.
|
||||
- **bug-1754** (2026-09-26, `6876e4f6`, pushed): a failed job's exit code is now persisted. A worker reports every nonzero exit as a FAIL (not FINISH), and WAL_JOB_FAIL had no code slot, so `job.exit_info` was NULL for every failed job. WAL_JOB_FAIL now carries an int32 code trailer (`persist_submit_job_fail_fact`); both apply seams adopt it via `apply_job_fail_exit_code()` (non-POST_EXEC stages only). `apply_wal_entry` also no longer assigns wire state 0 for STAGE_FLAG FAIL entries. New `test_wal_job_fail_fact.c`; controller suite 1228/0. Soaks: sequential 6 rounds PASS (SIMVERIFY 7 files, 0 mismatches) + factstream 2 rounds PASS.
|
||||
- **HA stability fixes** (2026-09-25, pushed, soak-verified): bug-1864 (per-endpoint FIFO in vtask dispatcher), bug-1865 (primary control endpoint refcounted, no double-close), bug-1850 (NOT_READY retries in place, no failover rotate), bug-1854 (re-pushed resource defs are idempotent).
|
||||
- **bug-1714 / bug-1840** marked cannot-reproduce (0 crashes across 2,400-element burst on old + current builds).
|
||||
- **Gitea sync** (2026-09-26): issues #264-#286 created (recent bugs + bug-1798..1804, 1714, 1754, 1850, 1854), #74 closed. Only a subset of the buglog is mirrored by design; `scripts/gitea-sync.py` gained `--ids` because bulk triage bumped the date fields `--since` relies on.
|
||||
- Logged: **bug-1866** (worker `launch_type` leak), **bug-1867** (controller snapshot drops `exit_info` — capnp `Job` has no exit field).
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Next phase
|
||||
|
||||
**Goal:** _None currently active — last quest (scheduler-sim-eager-reconciliation revision + bug-1799..1804) is committed and closed out._
|
||||
**Goal:** _None active._ Suggested order: bug-1508 (fetchfile path check, security) → bug-1747 FAIL half (add finish_time to the new WAL_JOB_FAIL trailer) → bug-1867 → `xce_test` harness batch + bug-1866 → a tasks-ready spec.
|
||||
|
||||
### Open items (not yet actioned)
|
||||
- `gitea` MCP server failed to connect this session (CONNECT_TIMEOUT) — buglog entries bug-1798 through bug-1804 have not been synced to Gitea issues via the `gitea-sync` skill; retry once the server is reachable.
|
||||
- _none pending_
|
||||
|
||||
### Files to create / edit
|
||||
- _none pending_
|
||||
|
|
@ -33,16 +33,21 @@
|
|||
## 📁 Active architecture
|
||||
|
||||
- **Stack:** Go API/CLI tier (`src/frontend/apiserver`) fronting C daemons (`src/controller`, `src/worker`, `src/scheduler`); Meson-based build via `src/tools/xce-build.sh`, hermetic nix dev shell.
|
||||
- **Current focus area:** `src/scheduler` — sim/replay mode (`sim.c`, `sim_loop.c`, `repl_info.c`) and resource accounting (`resource.c`).
|
||||
- **Current focus area:** `src/controller` persistence — WAL fact payloads and apply seams (`persist.c` `apply_committed_entry` / `apply_wal_entry`, `job.c` `record_job_*_fact`).
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Useful commands
|
||||
|
||||
```bash
|
||||
# Build + test scheduler only (ASAN profile)
|
||||
bash src/tools/xce-build.sh scheduler asan xce.build --jobs <N>
|
||||
# Build controller unit tests in place (nix shell) and run one group
|
||||
cd src && nix develop . --command meson compile -C xce.build controller_unit_test xce_controller
|
||||
ASAN_OPTIONS=detect_leaks=0 ./xce.build/controller/controller_unit_test -t test_wal_job_fail_fact
|
||||
|
||||
# Replay a live-captured scheduler session
|
||||
./xce.build/scheduler/xce_scheduler -i -s <replay-file>
|
||||
# HA soaks (sequential with real worker+scheduler; worker fact stream)
|
||||
XCE_HA_ROUNDS=6 nix develop ./src --command bash .claude/skills/xce-test-ha/run-ha-soak.sh --sequential <dir>
|
||||
nix develop ./src --command bash .claude/skills/xce-test-ha/run-ha-soak.sh --factstream <dir>
|
||||
|
||||
# Gitea bug sync (REST, no MCP needed) — always dry-run first
|
||||
python3 scripts/gitea-sync.py --dry-run --bugs --since <date> [--ids bug-N,bug-M]
|
||||
```
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue