fix(scheduler): REPL iterator leaks, affected jobids in round summaries, raw ids for trace on job

bug-1928: repl_count_jobs() and repl_info_jobs() never destroyed their
job-table iterators (16 B per continue round); both now do, and the
baseline and trace wiring tests run with leak detection on.
bug-1929: continue-mode round summaries listed only pending jobs, so a
dispatch-only round printed an empty jobids= and rounds dispatching
different jobs collapsed together; rounds now record and list every
affected job (scheduler-sim-repl-verbosity Req 2.1, 3.2). The baseline
transcript changes only in its two jobids= lines.
bug-1930: trace on job now accepts the raw decimal jobid form that info
trace and info job accept, through a shared parser.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Rongsong Shen 2026-10-09 03:37:03 +00:00
parent 5ca59dc9a8
commit ba6f42cdc2
Signed by untrusted user: rshen
GPG key ID: 80533536B0EB651C
13 changed files with 455 additions and 67 deletions

View file

@ -96,6 +96,9 @@ static void fixture_fini(void)
repl_trace_shutdown(&g_sim);
free(g_rs.collapse_pend_jobids);
g_rs.collapse_pend_jobids = NULL;
free(g_rs.collapse_decided_jobids); /* bug-1929 */
g_rs.collapse_decided_jobids = NULL;
repl_round_reset_decided(&g_rs);
if (g_sim.record_file != NULL) {
fclose(g_sim.record_file);
g_sim.record_file = NULL;