myxce/.wolf
Rongsong Shen e83d207afd
fix(wolf): log bug-1678, gitea #43 IS reproducible -- corrects earlier false negative
The prior verification pass (commit 1c9cfc1, same session) restarted
controller+scheduler+worker but left the apiserver running, so it only
ever saw the apiserver's stale, still-correct in-memory job cache from
before the restart -- never the controller's actual post-recovery
state. Repeating the test with the apiserver also restarted (matching
the original report's "restart all daemons" exactly) reproduces the
bug immediately: EXEC_HOST stays permanently blank across 15 polls/30s
while STATUS correctly shows RUN throughout.

Root cause fully traced: dispatch_a_job_() (job.c:1343-1372) sets
job.allocs in memory at dispatch-commit time but the durable
WAL_JOB_DISPATCH fact (persist_submit_job_fact, wal_jobstate_t
{jobid,state}) never carries the allocation. On a full restart,
restore_job() replays only the pre-dispatch WAL_JOB_SUBMIT payload
(allocs empty by construction) and apply_committed_entry()'s
WAL_JOB_DISPATCH case routes through apply_job_update_transition(),
which by design "only ever touches state" -- job.allocs is never
reconstructed. Controller log corroborates: recovery trace shows the
WAL_JOB_DISPATCH replay applying silently (no log on the APPLIED
path), followed by each job's WAL_JOB_START fact correctly logging a
now-redundant "duplicate UPDATE ... no-op".

Fix direction confirmed with the user: WAL_JOB_DISPATCH's payload
needs to carry the scheduler's resource allocation, not just
{jobid, state}, with a corresponding decode/apply path in
apply_committed_entry() -- not implemented here, this is a
reproduce-and-root-cause pass only.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AgYRU3zDTqNGV5Jk8aiKLg
2026-08-24 13:52:07 +00:00
..
hooks chore(wolf): sync anatomy/memory/hooks bookkeeping 2026-08-24 13:04:24 +00:00
_scan-state.json commit wolf status 2026-08-17 06:35:54 +00:00
anatomy-index.json commit wolf status 2026-08-17 06:35:54 +00:00
anatomy.md chore(wolf): sync anatomy/memory/hooks bookkeeping 2026-08-24 13:04:24 +00:00
buglog.json fix(wolf): log bug-1678, gitea #43 IS reproducible -- corrects earlier false negative 2026-08-24 13:52:07 +00:00
cerebrum.md chore(wolf): sync anatomy/cerebrum/memory/hooks/token-ledger bookkeeping 2026-08-24 12:56:39 +00:00
config.json chore: checkpoint all prior work for clean state 2026-06-04 13:04:16 +00:00
cron-manifest.json chore: checkpoint all prior work for clean state 2026-06-04 13:04:16 +00:00
cron-state.json save wolf status 2026-08-18 14:50:44 +00:00
daemon.log save wolf status 2026-08-18 14:50:44 +00:00
designqc-report.json chore: checkpoint all prior work for clean state 2026-06-04 13:04:16 +00:00
identity.md chore: checkpoint all prior work for clean state 2026-06-04 13:04:16 +00:00
memory.md chore(wolf): sync anatomy/memory/hooks bookkeeping 2026-08-24 13:04:24 +00:00
OPENWOLF.md chore(wolf): guard buglog.json integrity, add dedupe rule and auto-checkpoint 2026-08-13 04:28:44 +00:00
reframe-frameworks.md chore: checkpoint all prior work for clean state 2026-06-04 13:04:16 +00:00
suggestions.json chore(wolf): checkpoint session state (anatomy, cerebrum, memory, scan-state) 2026-08-16 11:02:17 +00:00
token-ledger.json chore(wolf): sync anatomy/cerebrum/memory/hooks/token-ledger bookkeeping 2026-08-24 12:56:39 +00:00