/xce-audit-invariants scheduler (dimension 1, driver state-equivalence, re-run after scheduler-sim-live-allocation) found plugin_end_session() still checked `plugin->begin_session_fn != NULL` before invoking `plugin->end_session_fn(plugin)` -- a copy-paste of plugin_begin_session()'s own (correct) guard. Two failure modes: a plugin registering only end_session_fn silently never has it invoked; a plugin registering only begin_session_fn crashes via a NULL function-pointer call. Currently inert in production (no live plugin hits either shape) but a real latent defect in exactly the session-boundary code the driver-equivalence invariant governs. This exact defect had been independently filed twice: bug-1492 (2026-08-04, scheduler-core task 5.2's review) and bug-1682 (2026-08-24, found adjacent to bug-1681's fix) -- neither investigation cross-referenced the other. Both entries also carried a "fixed" tag inconsistent with their own "not yet fixed" narrative text, caught by this audit's independent code+text cross-check. Fixed the one-line guard; added test_end_session_invokes_end_session_fn_ when_only_it_is_set() (test_plugin_hook_dispatch.c) proving the silent non-invocation, confirmed RED (84/85) against the buggy guard and GREEN (85/85) after the fix. Updated both buglog entries to FIXED with cross-references, and corrected bug-1611's stale narrative to reflect its narrowing (not elimination) by scheduler-sim-live-allocation. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RLSNJhNoULvVcUhXEFafQC |
||
|---|---|---|
| .. | ||
| autoscaler | ||
| configs | ||
| controller | ||
| docs | ||
| frontend | ||
| harness | ||
| include | ||
| lib | ||
| nixSupport | ||
| scheduler | ||
| schema | ||
| tools | ||
| worker | ||
| xceadmin | ||
| flake.lock | ||
| flake.nix | ||
| meson.build | ||
| meson.options | ||