Skip to content

Correct two run.log digests that only a Linux runner could see were wrong - #1

Merged
0j0bit merged 1 commit into
mainfrom
fix/crlf-digests-011
Sep 13, 2026
Merged

0j0bit merged 1 commit into
mainfrom
fix/crlf-digests-011

Conversation

@mcl-release-governor

Copy link
Copy Markdown

Correct two run.log digests that only Linux could see were wrong

The first release-gates run after these repositories became public failed on
two digests under experiment 011. Both had been recorded over the bytes as they
sat in a Windows working tree, still carrying the CRLF framing the capture
terminal emits. Git stores the file LF, as .gitattributes here requires, so the
recorded value described bytes that were never committed.

WHY THE SWEEP EARLIER THE SAME DAY MISSED THEM

That sweep ran on Windows and verified against the working tree, where the
stale CRLF copies still sat. text=auto makes Git compare NORMALISED content,
so git status called the tree clean and the digest agreed with itself. A
digest recorded from that tree agrees forever on that one machine and fails
everywhere else. The mismatch is only visible where the checkout equals the
committed bytes, which is every fresh clone and every Linux runner.

So the sweep was not wrong about the bytes it saw. It was looking at the wrong
bytes, and it reported PASSED while two artifacts would have failed for the
first external reviewer who ran sha256sum -c.

WHAT CHANGED

Only the two recorded digests, which now describe the committed bytes. The
measurements are untouched: the committed blobs have not changed at all, and
each file keeps its original recorded value as a comment. The working-tree
copies were refreshed from HEAD, which is a checkout repair rather than an
edit to evidence.

A tree-wide comparison of working-tree bytes against committed bytes found
exactly four divergent files, all in this repository. Two are these run.logs.
The other two are under experiment 012 and no digest file covers them, which is
why nothing failed there; those checkouts were refreshed as well.

mcl-core/tools/check-evidence-digests.sh now compares the working tree against
the committed blob before verifying anything, so this blind spot cannot recur
on any platform.

Co-Authored-By: Claude Opus 5 noreply@anthropic.com

The first release-gates run after these repositories became public failed on
two digests under experiment 011. Both had been recorded over the bytes as they
sat in a Windows working tree, still carrying the CRLF framing the capture
terminal emits. Git stores the file LF, as .gitattributes here requires, so the
recorded value described bytes that were never committed.

WHY THE SWEEP EARLIER THE SAME DAY MISSED THEM

That sweep ran on Windows and verified against the working tree, where the
stale CRLF copies still sat. `text=auto` makes Git compare NORMALISED content,
so `git status` called the tree clean and the digest agreed with itself. A
digest recorded from that tree agrees forever on that one machine and fails
everywhere else. The mismatch is only visible where the checkout equals the
committed bytes, which is every fresh clone and every Linux runner.

So the sweep was not wrong about the bytes it saw. It was looking at the wrong
bytes, and it reported PASSED while two artifacts would have failed for the
first external reviewer who ran sha256sum -c.

WHAT CHANGED

Only the two recorded digests, which now describe the committed bytes. The
measurements are untouched: the committed blobs have not changed at all, and
each file keeps its original recorded value as a comment. The working-tree
copies were refreshed from HEAD, which is a checkout repair rather than an
edit to evidence.

A tree-wide comparison of working-tree bytes against committed bytes found
exactly four divergent files, all in this repository. Two are these run.logs.
The other two are under experiment 012 and no digest file covers them, which is
why nothing failed there; those checkouts were refreshed as well.

mcl-core/tools/check-evidence-digests.sh now compares the working tree against
the committed blob before verifying anything, so this blind spot cannot recur
on any platform.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

@0j0bit 0j0bit 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.

Reviewed as 0j0bit: only the two 011 SHA256SUMS.txt records change; no evidence bytes altered; the corrected digests match the committed LF blobs; build (gcc) and build (clang) green.

@0j0bit
0j0bit merged commit 6869080 into main Sep 13, 2026
2 checks passed
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