Skip to content

Renode model NC1: tolerate Mono's exit-134 abort only when the verdict line printed (AFD-150) - #311

Merged
avrabe merged 1 commit into
mainfrom
fix/afd-150-mono-nc1
Nov 2, 2026
Merged

avrabe merged 1 commit into
mainfrom
fix/afd-150-mono-nc1

Conversation

@avrabe

@avrabe avrabe commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

The flake: 2 of 13 CI runs. Both had the same shape:

  • verify.sh rejected the mutated archive (rc=1).
  • The .resc printed SMOKE FAIL: boot line not seen.
  • Mono then aborted in Environment.Exit(3) with 134.

NC1 grepped for the literal exit 3, so a control whose assertion had bitten was reported broken. The job is now required (AFD-149), so each recurrence blocked a merge.

Fix: NC1 accepts exit 134 only for a runtime detected as Mono, and only together with rejection, the FAIL verdict line, and no PASS line. .NET keeps the exact exit 3. NC2 already grants Mono the same kind of allowance for load errors.

Measured:

case result
A. real .NET Renode 1.16.1, self-test NC0–NC5 pass, NC1 via exact exit 3
B. stand-in Mono: verdict printed, then SIGABRT NC1 passes via the new branch
C1. same abort without the verdict line (mono) NC1 red
C2. same abort from a runtime detected as dotnet NC1 red

Not reproduced on real Mono locally, because local Renode is the .NET build. This PR's CI runs the real Mono build. AFD-150 is resolved with the diagnosis. rivet validate (0.41.1): Result: PASS.

🤖 Generated with Claude Code

https://claude.ai/code/session_017EKh2onUHpWSUiAEqWxfy2

…he assertion did bite (AFD-150)

Both CI failures had the same shape: verify.sh rejected the mutated archive, the .resc printed
'SMOKE FAIL: boot line not seen', and Mono then aborted in Environment.Exit(3) with 134. NC1
grepped for the literal 'exit 3', so a control whose assertion had bitten was reported broken,
and with the job now required (AFD-149) each recurrence blocked a merge.

NC1 now accepts, only for a detected Mono, rejection + the FAIL verdict line + no PASS line with
exit 134; .NET keeps the exact exit 3. Measured: real .NET self-test NC0-NC5 pass; a stand-in
Mono that prints the verdict then SIGABRTs passes; the abort without the verdict line, and the
same abort from a runtime detected as .NET, both stay red.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017EKh2onUHpWSUiAEqWxfy2
@avrabe
avrabe merged commit 36dd79b into main Nov 2, 2026
9 checks passed
@avrabe
avrabe deleted the fix/afd-150-mono-nc1 branch November 2, 2026 23:50
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.

1 participant