Skip to content

docs(ReadingCiSignals): classify a red shard by its exit marker — HOST_CRASHED in the log is script echo - #2739

Merged
rbuergi merged 2 commits into
mainfrom
docs/reading-a-red-shard
Aug 30, 2026
Merged

rbuergi merged 2 commits into
mainfrom
docs/reading-a-red-shard

Conversation

@rbuergi

@rbuergi rbuergi commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Conserving a triage finding from today, per the new AGENTS.md rule (#2732).

What was measured

Two main reds this morning were reported as 2x then 4x HOST_CRASHED — a trunk emergency that would have parked a release wave. The exit markers said otherwise:

commit marker reality
5e73bfcaa (#2721) exit=1 TESTFAIL (1 failing test(s) … the host completed normally) one flaky test (SilentReadNackTest, the #2673/#1599 family) — no crash
81f8869d5 (#2638) exit=1 MASKED (trx records 2 failing test(s), which does not explain exit=1 — host crashed after streaming results) a genuine crash (#2727 + UserHomeLegacyPathResolutionTest)

The HOST_CRASHED hits came from the Summarize test failures step echoing its own explanatory sentence ("…is written INTO the trx as a <project>.HOST_CRASHED failure by record-host-crash.py…"), so grep -c HOST_CRASHED scales with the number of steps that echoed it, not with crashes.

What the page gains

Doc-only. No What's New entry — agent/maintainer-facing CI guidance, not a user-visible change (deliberate skip).

🤖 Generated with Claude Code

https://claude.ai/code/session_01EPCWramjFYquX5SaMdeJKW

…— TESTFAIL vs MASKED — and `HOST_CRASHED` in the log is script echo

Measured 2026-08-30 while triaging two main reds that were reported as "2x then 4x HOST_CRASHED".
The markers said one TESTFAIL (a SilentReadNackTest flake; the host completed normally) and one
genuine MASKED. The HOST_CRASHED hits were the summarize step echoing its own explanatory sentence,
so a grep -c over the log counts echoes, not crashes.

Adds the marker table (TESTFAIL / MASKED / TIMEOUT / SIGNAL), the echo trap, and the
attribute-by-reachability rule that exonerated #2726 (Monolith.Test references no Orleans project)
and #2721 in the same triage.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EPCWramjFYquX5SaMdeJKW
Copilot AI lite review requested due to automatic review settings August 30, 2026 08:03

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the “Reading CI Signals” documentation to improve CI triage accuracy by teaching readers to classify red shards using the authoritative exit marker (rather than log text that may be misleading due to script echo).

Changes:

  • Added a new section explaining how to interpret shard exit-marker classifications (TESTFAIL, MASKED, TIMEOUT, SIGNAL) and how they should drive attribution.
  • Documented the HOST_CRASHED “echo trap” where log hits can come from summarizer script output rather than real crashes.
  • Added guidance to attribute failures by dependency reachability (reference graph) before adjacency.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

…ary outranks the marker

Correction from meshweaver-61, verified in run 33298742141 shard 1: the assembly printed
`MeshWeaver.Hosting.Monolith.Test  Total: 331, Errors: 0, Failed: 2, ... Time: 461.193s`, so the
host COMPLETED — the MASKED classification was the harness inferring a crash from `rc != trxfails`,
an assumption that xUnit v3 exits with the failure count (2 failures exited 1). Neither of the two
reds was a crash.

The section now says the marker is where to LOOK, names MASKED as derived, and makes the execution
summary the decisive evidence; a real crash is the ABSENCE of that line. Classifier fix tracked in
#2738.

Also: xUnit capitalization in prose per WritingTests.md (Copilot). The marker quote keeps the
harness's own lowercase spelling — it is a verbatim transcript.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EPCWramjFYquX5SaMdeJKW
@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 3)

701 tests   509 ✅  4m 38s ⏱️
  5 suites  192 💤
  5 files      0 ❌

Results for commit e0591b5.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 5)

1 533 tests   1 533 ✅  5m 31s ⏱️
    8 suites      0 💤
    8 files        0 ❌

Results for commit e0591b5.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 0)

913 tests  ±0   913 ✅ ±0   5m 28s ⏱️ ±0s
  6 suites ±0     0 💤 ±0 
  6 files   ±0     0 ❌ ±0 

Results for commit e0591b5. ± Comparison against base commit 14fcf9e.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 4)

   10 files     10 suites   4m 48s ⏱️
3 466 tests 3 466 ✅ 0 💤 0 ❌
4 110 runs  4 110 ✅ 0 💤 0 ❌

Results for commit e0591b5.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 1)

792 tests  ±0   788 ✅ ±0   6m 44s ⏱️ -9s
  6 suites ±0     4 💤 ±0 
  6 files   ±0     0 ❌ ±0 

Results for commit e0591b5. ± Comparison against base commit 14fcf9e.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 2)

968 tests  ±0   968 ✅ ±0   5m 59s ⏱️ +19s
  6 suites ±0     0 💤 ±0 
  6 files   ±0     0 ❌ ±0 

Results for commit e0591b5. ± Comparison against base commit 14fcf9e.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results

   41 files  ±0     41 suites  ±0   33m 11s ⏱️ - 1m 9s
8 373 tests ±0  8 177 ✅ ±0  196 💤 ±0  0 ❌ ±0 
9 017 runs  ±0  8 821 ✅ ±0  196 💤 ±0  0 ❌ ±0 

Results for commit e0591b5. ± Comparison against base commit 14fcf9e.

@rbuergi
rbuergi merged commit 7aaec85 into main Aug 30, 2026
24 checks passed
@rbuergi
rbuergi deleted the docs/reading-a-red-shard branch August 30, 2026 08:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants