fix: CI failures on ubuntu/windows (R interrupt races, locked test cwds)#30
Merged
Conversation
3c76245 to
c1cf8d3
Compare
…ws-safe test cwds - R runtime: options(catch.script.errors=TRUE) so an interrupt landing outside .repld_run's tryCatch doesn't 'Execution halted' the non-interactive session; drain stray pending SIGINTs (engine resends) at eval start so they can't detonate inside the next eval - engine: persistent control-line reader + bounded status wait, so an eval aborted before handlers were set degrades to an error instead of hanging - repld stop exits 0 when daemon not running - tests: session cwds outlive tests (Windows locks live process cwd against TempDir cleanup); normalize shared cwds (macOS /var symlink, Windows 8.3) - skip TestRInterruptSurvives on windows (no SIGINT delivery)
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.
Fixes the ubuntu/windows CI failures and makes
repld stopidempotent.Ubuntu (flaky
TestRInterruptSurvives): non-interactive R exits with "Execution halted" when an interrupt lands outside.repld_run'stryCatch(seecheck_session_exitin R'ssrc/main/main.c) — a scheduling-dependent window during decode/parse or the sentinel statement. Three layers:options(catch.script.errors = TRUE)keeps the session alive on a stray top-level interruptVerified with a 25x stress run on ubuntu-latest (debug workflow, since removed).
Windows:
t.TempDirused as session cwd fails cleanup while the interpreter lives on the shared daemon (process cwd locks the dir) → session cwds now outlive tests. 8.3 short-path mismatch in the Julia script test fixed by normalizing the shared cwd.TestRInterruptSurvivesskipped (no SIGINT delivery to detached children).CLI:
repld stopexits 0 when the daemon isn't running, sorepld stop && ...chains work.