The FreeBSD canary's own test suite eats the script that launched it - #1756
Merged
Merged
Conversation
vmactions/freebsd-vm pipes the `run:` block to the remote `sh` on stdin. `sh` reads it a buffer at a time, so the unread tail is still sitting in the pipe while the earlier commands run. `make check` runs httrack, httrack reads stdin, and the bytes it swallows are the rest of the canary's own script. The 2026-09-23 run echoed "testsuite: 464 passed of 510" and then died with "sh: Syntax error: Unterminated quoted string": `sh` came back for more input and resumed in the middle of a quoted word. The verdict the canary exists to give was never reached. Redirecting the `su` that launches the suite from /dev/null leaves the pipe untouched. Reproduced with dash: a script longer than the read buffer, piped to the shell, loses everything after the first child that reads stdin, and keeps it when that child gets `</dev/null`. Signed-off-by: Xavier Roche <xroche@gmail.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: Xavier Roche <roche@httrack.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The weekly FreeBSD canary went red on 2026-09-23. It printed "testsuite: 464 passed of 510", then
sh: Syntax error: Unterminated quoted string, and gave no verdict.The action pipes this
run:block to the remoteshon stdin.shreads that pipe a buffer at a time, so its unread tail still sits there whenmake checkstarts httrack. httrack reads stdin and eats the tail, andshresumes in the middle of a quoted word.The
suthat launches the suite now reads/dev/null. I reproduced the mechanism with dash: a piped script longer than the read buffer loses everything after the first child that reads stdin. It keeps that tail once the child gets</dev/null.