Repository navigation
test: stop the Ubuntu job's intermittent failures - #220
Merged
Merged
Conversation
The login shell's environment is read after the shell exits cleanly: the pipe closes slightly before the process counts as exited, and killing the group right at end of output could turn that into SIGKILL and a failed read. The panel test now waits for a frame whose pixels match its metadata: right after a resize Chromium can send a 1000x560 picture labelled 1000x700. The real-browser tests take one of three slots, so a dozen cold Chromium profiles no longer start together on a small runner.
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.
Three intermittent failures of
Rust (Ubuntu)/cargo test, none caused by a code change. Each was reproduced on Linux in Docker (Chromium 154, 2 CPUs) and fixed at its cause.the_login_shell_gives_a_path: the shell's stdout pipe closes slightly before the process counts as exited. The reader sent SIGKILL to the process group right at end of output, so a clean exit could read as killed and the environment was dropped. Now the shell is waited for first (a timeout still kills it), and the group is swept afterwards.a_scaled_screen_keeps_the_page_in_its_pixels...: right after a resize Chromium can send a frame drawn for the old surface under the new metadata (1000x560 picture labelled 1000x700). Reproduced 3 times in 30 runs before the fix.frame_ofnow waits for a frame whose JPEG size matches its metadata and the expected height, so the test still proves that frames reach the new size.browser.rs"browser did not start in time" (four tests at once): a dozen cold Chromium profiles starting together on a small runner. The real-browser tests now take one of three slots (common/browsing.rs) until the daemon has closed its browser. Not reproduced on its own; this is the contention fix for it.No product code behaviour changes besides the shell wait; no spec change needed.
Verification
cargo test -p botloftd --test browser --test browser_panel --liblooped, 60 of 60 green on the final code (and 60 of 60 on the previous revision, 25 of 25 at 1 CPU).Page.navigateunanswered for 30 s) while a full Windowscargo test --workspacewas compiling on the same host; it did not recur in the next 60 clean runs. If it shows up on CI it is a fourth family worth its own look.cargo fmt --all --check,cargo clippy --workspace --all-targets -- -D warnings,cargo test --workspaceall pass. Linux clippy forbotloftdpasses.