rdmsm4x-tyrelld-spoke-cpu-20260928-1955
rdmsm4x - fix - tyrelld spoke CPU mitigation + Tyrell CLAUDE.md re-measure - claude@rdmsm4x - ISSUE-20260928-12 - Tyrell - 2026-09-28 19:55:12 EDT
Span: 2026-09-28 19:38 EDT to 2026-09-28 19:55:12 EDT, on rdmsm4x (remote actions on 4 spokes).
Trigger
Rich killed Tyrell on rdmbair15m5 because it was hanging the whole system (40-50% CPU). launchd restarted tyrelld, and it went back to ~100%.
Cause (measured)
Build 48+ default inventory roots are [~/]. The spoke configs had no roots key, so tyrelld walked and SHA-256'd all of home, including ~/Library. Evidence: sample showed HashFiller.fill -> TyrellHash.fullHash on 100% of samples on rdmbair15m5, rdmpw3265m and rdmpw3275m. Same cause as hub ISSUE-20260928-10.
Done
- Applied the hub's explicit-roots config mitigation (merged into the existing config, prior archived, receipt + revert in ~/.tyrell/config-backups/tyrelld-cpu-spokes-20260928/) on rdmbair15m5, rdmbair13m5, rdmpw3265m and rdmpw3275m. Then kickstarted tyrelld.
- tyrelld CPU (windowed, cumulative CPU time): 15m5 94% -> 11%; 13m5 103% -> 13%; 3265m 206% -> 17%; 3275m 129% -> 97% and falling.
- Tyrell CLAUDE.md /init re-measure + new section 11 (1eba3e5, pushed to fleet + backup).
- Backgrounded the rdmsm4x "Too many open files" (Codex exec) diagnosis to a Sonnet worker. Lead: launchctl maxfiles soft limit 256.
Open
- jdmbair13m5 not mitigated (ssh timeout). ISSUE-20260928-12 is blocked on it.
- Durable fix: codex/tyrelld-cpu-20260928 (ISSUE-20260928-10), load-gated and unmerged.
- Stored ~/Library rows still drive the sync/upload cost until the durable fix lands.
Scripts: ~/dev/_handoff/tyrelld-cpu-spokes-20260928/