docs(buglog): bug-1926 sim REPL break jobid= filter ignores dashed jobids
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
4d1a245fd9
commit
aa401627a8
2 changed files with 87 additions and 0 deletions
|
|
@ -17509,6 +17509,30 @@
|
|||
"fcca4c9c"
|
||||
],
|
||||
"record": ".wolf/bugs/bug-1925.md"
|
||||
},
|
||||
{
|
||||
"id": "bug-1926",
|
||||
"status": "open",
|
||||
"status_updated": "2026-10-08",
|
||||
"status_note": "newly logged",
|
||||
"component": "scheduler",
|
||||
"severity": "wrong-result",
|
||||
"timestamp": "2026-10-08T16:08:34Z",
|
||||
"last_seen": "2026-10-08T16:08:34Z",
|
||||
"occurrences": 1,
|
||||
"error_message": "xce_scheduler --sim REPL break jobid= filter ignores the dashed jobid form the REPL prints\n\n**Observed:** a `break DECISION jobid=<id>` (or `break <EVENT> jobid=<id>`) breakpoint set with the dashed jobid form the REPL itself prints never fires. With the 1.1 contention fixture:\n```\n[sim] breakpoint 1 set: DECISION jobid=0-0-0-104\n-- (continue runs to the end; no hit)\n[sim] breakpoint 1 set: DECISION jobid=104\n[sim] hit breakpoint 1 @ decision: PEND jobid=0-0-0-104\n```\nThe hit line prints `jobid=0-0-0-104`, yet only the raw decimal packed id (`jobid=104`) matches. The breakpoint is accepted without any warning.\n\n**Expected:** a jobid filter accepts the same jobid forms the REPL prints and `info job` accepts (`parse_jobid`/`parse_jobsel`, including `X[k]` array elements), as well as the raw decimal id.\n\n**Impact:** wrong result, usability. An operator copies a jobid from REPL output into `break ... jobid=`, and the breakpoint silently never stops the run. For real jobids (non-zero cluster/user/time fields) the raw decimal form is a large number nobody types, so jobid breakpoints are effectively unusable. No effect on scheduling.\n\n**Found by:** spec task scheduler-sim-decision-trace 6.1 (end-to-end tests had to use raw decimal ids for breakpoints), confirmed by the 6.1 review. It predates that feature: `repl_u64_str_eq` comes from commit 2fecea35 (2026-08-07).\n\nSuspected: `repl_u64_str_eq()` (src/scheduler/src/repl_break.c:210) formats the packed jobid with `%llu` and compares strings, so only the decimal form can match. It is used by the decision filter (`repl_decision_matches_filter`, ~line 346) and, per its comment, by every `jobid=` filter including event filters.",
|
||||
"file": "src/scheduler/src/repl_break.c",
|
||||
"root_cause": "TODO: required for fixed/partial",
|
||||
"fix": "TODO: required for fixed/partial\n\nVerification:\n- Test: TODO: name + file; RED before the fix, GREEN after\n- Suites: TODO: suite results and build profile\n- Live: TODO: soak/deploy run, or n/a and why",
|
||||
"tags": [
|
||||
"sim",
|
||||
"repl",
|
||||
"breakpoint",
|
||||
"jobid"
|
||||
],
|
||||
"related_bugs": [],
|
||||
"fix_commits": [],
|
||||
"record": ".wolf/bugs/bug-1926.md"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue