sched_sim_driver_start() now registers the core's tlog format function and marks its core active for logging right after the virtual clock is seeded (xce_core_register_tlog_format()/xce_core_set_active_for_logging()) -- every log line for the rest of the run shows frozen/scaled replay time instead of real wall-clock time, matching what an operator debugging against a replay's own timeline needs. sched_sim_driver_run() deactivates on all 7 of its return paths, since there's no sim-driver teardown function and g_active_core_for_logging would otherwise dangle past the caller's stack frame. Also fixes a genuine pre-existing ASAN stack-use-after-return (bug-1598) the new deactivation test exposed: sim_picker_thread_fn is spawned but, by design, never joined/cancelled, so a stack-local `xce_sched_sim_driver_t sim` in test_sim_event_loop.c was always a latent UAF once its owning test function returned -- just not previously triggered by any prior test ordering. Switched the three affected fixtures in that file to `static` storage (safe: sched_sim_driver_start() memsets the whole struct on entry, and none of the three call sites are re-entrant). |
||
|---|---|---|
| .. | ||
| autoscaler | ||
| configs | ||
| controller | ||
| docs | ||
| frontend | ||
| include | ||
| lib | ||
| nixSupport | ||
| scheduler | ||
| schema | ||
| tools | ||
| worker | ||
| xceadmin | ||
| flake.lock | ||
| flake.nix | ||
| meson.build | ||
| meson.options | ||