From ac8404b245eda91ce6fad326b239fcab7266c14e Mon Sep 17 00:00:00 2001 From: Rongsong Shen Date: Mon, 17 Aug 2026 08:58:02 +0000 Subject: [PATCH] chore(wolf): checkpoint buglog.json (944 bugs) --- .wolf/buglog.json | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/.wolf/buglog.json b/.wolf/buglog.json index 002c5c9d..35588e32 100644 --- a/.wolf/buglog.json +++ b/.wolf/buglog.json @@ -16838,6 +16838,48 @@ "related_bugs": [], "occurrences": 1, "last_seen": "2026-08-17T08:30:00.000Z" + }, + { + "id": "bug-1567", + "timestamp": "2026-08-17T09:00:00Z", + "error_message": "xce_scheduler -i -s : WARN 'failed to resolve job picker plugin (rc=-2)' on load; all pre-existing jobs stay PEND forever, nothing ever dispatches in simulation/interactive mode", + "file": "src/scheduler/src/sim.c, src/scheduler/src/sim_loop.c", + "root_cause": "Two compounding, both explicitly documented 'Known scope boundary' gaps in the scheduler-core sim driver (task 11.1/11.2, .kiro/specs/scheduler-core): (1) sched_sim_driver_start() (sim.c) loads the initial snapshot via xce_sched_core_load_snapshot() BEFORE any picker plugin is registered into core->plugins -- only job_pick_plugin's NAME is threaded through from the ReplayHeader (sim.h:206-216's own doc comment). sched_resolve_job_picker() therefore returns -ENOENT (=-2), producing the WARN, and the picker-rebuild walk (on_queue_update/on_job_push) inside xce_sched_core_load_snapshot() is silently skipped for every job/queue in the initial snapshot. The real picker only gets registered moments later, in sim_register_default_picker() (sim_loop.c:381, called from sched_sim_driver_run() right after start() returns) -- but nothing re-pushes the already-loaded jobs/queues into it, so any job present in the replay file's INITIAL snapshot is permanently invisible to the fcfs picker's next_job(). (2) Independently, sim_picker_thread_fn() (sim_loop.c:448) has its own documented scope boundary: real resource-matching allocation (sched_make_allocation()) needs a live xce_scheduler_t* that the sim driver deliberately doesn't have, and no core-only equivalent exists yet (deferred to the separate, not-yet-designed .kiro/specs/scheduler-allocation spec) -- so EVERY candidate the picker selects is unconditionally turned into a PEND decision; dispatch is not implemented in simulation mode at all today, regardless of resource availability.", + "fix": "Not yet fixed -- diagnosis only, per user request ('Investigate following issue'). (1) is a scoped, tractable fix (re-run the picker-rebuild walk, or push the initial snapshot's jobs/queues into the picker, right after sim_register_default_picker() registers it in sched_sim_driver_run()). (2) is a much larger, intentionally out-of-scope gap (a whole not-yet-designed spec, scheduler-allocation) and should not be casually patched without a design discussion. Reported back to user with both findings; awaiting direction on whether/which to fix.", + "tags": [ + "scheduler", + "simulation-mode", + "sim-mode", + "replay", + "job-picker", + "scheduler-core", + "known-scope-boundary", + "not-yet-fixed" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-08-17T09:00:00Z" + }, + { + "id": "bug-1568", + "timestamp": "2026-08-17T09:00:00Z", + "error_message": "xce_scheduler -i -s : 'info worker ' shows total=0.00 available=0.00 for every resource, even though the live cluster (xce_test resval/workerlist) reports real non-zero values for the same worker", + "file": "src/scheduler/src/repl_info.c, src/scheduler/src/snapshot_wire.c, src/scheduler/src/snapshot_load.c, src/controller/sched.c", + "root_cause": "Not fully root-caused -- open lead, lower confidence than bug-1567. Verified the snapshot SAVE path (build_wire_worker, snapshot_wire.c:200) and LOAD path (xce_sched_core_load_snapshot's worker loop, snapshot_load.c:58) both correctly move resource values through resvals_to_sched/w->resvals -- so if the scheduler's OWN live in-memory worker mirror had real values at 'record start' time, they would have been captured correctly into the .replay file. Whether it actually did depends on the controller->scheduler resource-value push path (src/controller/sched.c's sched_worker_change/xcesched_push_workerlist, fired on worker join/dead/update hooks) and whether xce_core_push_events's XCE_CORE_EVENT_WORKERS_PUSH handler (core_events.c:463-480) silently drops a later real-valued push: it calls sched_add_worker() but never checks its return value, and sched_add_worker() is a plain key_add() (external vendored rtti library, var-typed keyed container, src/scheduler/src/core.c:270) -- could not confirm from this repo's own sources whether key_add() re-adding an existing worker name update-in-places or fails/no-ops, since the concrete implementation lives in the vendored rtti-0.0.2 nix package, not this repo. Functional impact today is zero (bug-1567's finding (2): sim mode doesn't do real resource-matching allocation at all yet), but this is a real diagnostics-accuracy gap in 'info worker' worth fixing separately if/when allocation gets implemented.", + "fix": "Not yet fixed -- open investigation lead, reported to user alongside bug-1567. Needs a live recording session trace (or reading the vendored rtti library's key_add source) to confirm whether this is a genuine capture/propagation bug or expected-at-record-time transient state.", + "tags": [ + "scheduler", + "simulation-mode", + "resource-values", + "worker-resvals", + "needs-investigation", + "not-yet-fixed" + ], + "related_bugs": [ + "bug-1567" + ], + "occurrences": 1, + "last_seen": "2026-08-17T09:00:00Z" } ] }