Snapshot of every non-log artifact under audit-runs/ from audits 003 through 058: findings.md per audit, comparison CSVs, probe diffs, schema docs, register-dump txts, lr-trace JSONL streams, the saved canary patch diffs, etc. ~284 files / ~52 MB total. Excluded (per .gitignore): probe stdout/stderr/log streams (the raw firehose), guest-memory dumps under audit-026/027/029 (4.5 GB of .bin files; *.bin pattern added to .gitignore this commit). Also adds the orphan audit-058-sub825070F0-activation directory that a subagent accidentally created at project-root instead of under xenia-rs/audit-runs/; relocated to its proper home. Purpose: cross-machine continuity. With these summaries committed, a fresh clone gives the next session the full per-audit context (findings + tables + cascade predictions) without dependence on local-only working tree. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
67 lines
3.0 KiB
Plaintext
67 lines
3.0 KiB
Plaintext
# AUDIT-056: Producer-trace at sub_82452DC0
|
|
# Method: --log_lr_on_pc on canary (60s wallclock) vs --lr-trace on ours (-n 500M)
|
|
# canary HEAD 6de80dffe + audit-030 patch; ours HEAD ac2f89a (read-only); XENIA_CACHE_ROOT override
|
|
|
|
## Level 0: sub_82452DC0 LR distribution
|
|
|
|
LR CANARY OURS RATIO FN CLASS
|
|
0x82452E64 19 6 3.17x sub_82452DC0+0xA4 CANARY-OVER (self-recurse)
|
|
0x82460CC8 7 2 3.50x sub_82460B70+0x158 CANARY-OVER
|
|
0x821CBF7C 7 0 INF sub_821CBEA8+0xD4 CANARY-ONLY
|
|
0x821C4C98 5 0 INF sub_821C4AE0+0x1B8 CANARY-ONLY
|
|
0x82448120 4 4 1.00x sub_824480D0+0x50 PARITY
|
|
0x821CB1D0 2 1 2.00x sub_821CB030+0x1A0 CANARY-OVER
|
|
0x821790B8 1 1 1.00x sub_82178F60+0x158 PARITY
|
|
|
|
TOTAL 45 14 3.21x
|
|
|
|
## Level 1: parents of CANARY-ONLY callers
|
|
|
|
sub_821CBEA8 entries: canary 7, ours 0 (CANARY-ONLY)
|
|
LR distribution in canary: 5x lr=0x821CEEBC (sub_821CEDF8+0xC4), 2x lr=0x821CEDA0 (sub_821CECF0+0xB0)
|
|
|
|
sub_821C4AE0 entries: canary 1 (lr=0xBCBCBCBC == thread-trampoline poison), ours 0
|
|
Means: sub_821C4AE0 is a thread entrypoint invoked via sub_824AFF88 trampoline
|
|
ratio is 1->5 (1 invocation cascades to 5 internal sub_82452DC0 calls via loop)
|
|
|
|
## Level 2: grandparents
|
|
|
|
sub_821CEDF8 entries: canary 5 (all from sub_821C4EB0 +0x19C..+0x244 = 5-call cascade), ours 0
|
|
sub_821CECF0 entries: canary 2 (both from sub_821C4988+0x70), ours 0
|
|
sub_82460B70 entries: canary 7, ours 2 (3.5x — different chain)
|
|
|
|
## Level 3: great-grandparents
|
|
|
|
sub_821C4EB0 entries: canary 1 (lr=0x82174A80), ours 1 (lr=0x82174A80) -- PARITY!
|
|
sub_821C4988 entries: not directly callable (called from sub_821C4EB0+0x158)
|
|
sub_824AFF88 entries: canary 5 (all lr=0xBCBCBCBC, thread trampoline), ours 0
|
|
|
|
## DIVERGENCE INTRODUCER
|
|
|
|
Thread trampoline sub_824AFF88: canary 5 invocations, ours 0
|
|
=> 5 game-spawned threads in canary that are NOT being created in ours.
|
|
|
|
Thread creation totals (ground truth):
|
|
canary 30 XThreads (tids 1..0x1E)
|
|
ours 12 XThreads
|
|
|
|
Of the 18 missing ours threads, at least 5 invoke sub_824AFF88 trampoline
|
|
(others go to other entrypoints).
|
|
|
|
The audit-009 cluster front-end-UI activates sub_821C4EB0 ONCE in both engines
|
|
(parity at level 3). But inside sub_821C4EB0, the 5x cascade to sub_821CEDF8
|
|
fires only in canary. Note: --lr-trace in ours can't probe internal
|
|
basic-block PCs, so we cannot directly verify whether ours's sub_821C4EB0
|
|
runs to completion or returns early.
|
|
|
|
## Bug class
|
|
|
|
δ-throughput at thread-creation level. Specifically:
|
|
- 18 game-side threads not being created (12 vs 30 within 60s/500M)
|
|
- The work-submitter sub_82452DC0 throughput ratio (3.21x) matches
|
|
thread-count ratio (3.0x) within noise => downstream of thread-spawn.
|
|
|
|
The cascade-divergence inside sub_821C4EB0 may have separate causality
|
|
from the missing threads, or both share an upstream cause (state-machine
|
|
not advancing past front-end-UI activation gate).
|