CI: cross-platform-actions 1.5.0, re-add haiku (r1beta6) - #10249
Open
ThomasWaldmann wants to merge 12 commits into
Open
CI: cross-platform-actions 1.5.0, re-add haiku (r1beta6)#10249ThomasWaldmann wants to merge 12 commits into
ThomasWaldmann wants to merge 12 commits into
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #10249 +/- ##
==========================================
- Coverage 87.47% 87.34% -0.14%
==========================================
Files 103 103
Lines 18534 18575 +41
Branches 2843 2849 +6
==========================================
+ Hits 16213 16224 +11
- Misses 1623 1653 +30
Partials 698 698 ☔ View full report in Codecov by Harness. |
ThomasWaldmann
force-pushed
the
ci-cpa-1.5.0-haiku-beta6
branch
from
August 28, 2026 20:55
cf7ccd3 to
f8592fa
Compare
1.5.0 adds support for Haiku R1/beta6, so bring haiku back into the vm_tests matrix - it was removed in 30ed2bc because r1beta5 (2024) was too painful to work with, see borgbackup#9463. Also: build blake3 outside /tmp, one rustc at a time rustc 1.94.1 ICEd while compiling the blake3 crate ("assertion failed: bytes[len] == STR_SENTINEL"), reading back metadata that does not match what it wrote. Try building outside /boot/system/cache/tmp with a single rustc at a time, in case that corruption comes from disk or memory pressure there. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
ThomasWaldmann
force-pushed
the
ci-cpa-1.5.0-haiku-beta6
branch
from
August 28, 2026 21:29
f8592fa to
d95bdc8
Compare
zoneinfo finds no tz database on haiku, so every "date:" pattern with a named timezone fails with ZoneInfoNotFoundError. Same situation as on windows, so pull in the tzdata package there, too. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
haiku's python has no time.tzset either, so the local-timezone tests failed there (and their teardown errored). Skip on the actual reason rather than on the platform. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
SpecialFileReader relies on os.read() returning b"" while no writer has opened the fifo yet. On haiku that read fails with ENOMEM instead, which propagated as a backup error, so --read-special never reached its timeout and the fifo tests failed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Reading the lock directory while another process replaces it via rename() fails with EBUSY on haiku. kill_stale_lock() only expected ENOENT and EACCES, so the exception escaped ExclusiveLock.acquire() and the lock race test saw it as unclean concurrency handling. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
haiku puts the pipes to the borg 1.x serve process into select()'s exceptional set although nothing is wrong, and LegacyRemoteRepository turned that into "FD exception occurred", so transferring from a borg 1.x ssh:// repository failed right at the version negotiation. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The default backlog of 5 connections is small for a server whose every response closes the connection. On haiku, connecting to a server with a full backlog fails with EWOULDBLOCK rather than waiting for a slot, which made webdav tests fail there. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
When the borg serve process closes its stdout, call_many() raised ConnectionClosed right away, discarding whatever the remote had written to stderr in the same select() round, so the user only got "Is borg working on the server?" without the reason. Log the remote's stderr and exit status before giving up. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
In serve mode all log records go to borg_serve_log_queue and are sent to the client from RepositoryServer.serve(). If borg serve fails before or while serving, whatever is still queued - including the error that made it exit - is silently dropped, so the client only sees the connection being closed. Write the rest of the queue to stderr when exiting; the client logs the remote's stderr. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
haiku fails connecting to the test webdav server with EWOULDBLOCK rather than waiting for it to accept, so the webdav tests failed there whenever the VM was slow. The bigger listen backlog alone did not stop it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
A dying remote may write its error message slightly after we notice that its stdout is gone, so drain_stderr() gave up before the message showed up. Wait up to a second for it instead of only doing one read. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The borg 1.x ssh:// transfer test fails there because its "borg serve" child exits with rc 2 and says nothing the client can see. Run it directly in the job so its output ends up in the CI log. This commit is a diagnostic aid and is meant to be dropped again. Co-Authored-By: Claude Opus 5 <noreply@anthropic.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.
Bumps
cross-platform-actions/actionto v1.5.0 (pinned tofaa0c61, resolved from the annotatedv1.5.0tag) and brings Haiku back into thevm_testsmatrix atr1beta6, which 1.5.0 adds support for.Haiku was removed in 30ed2bc because r1beta5 (from 2024) was too much pain: system python only 3.10, HaikuPorts python 3.11 without ssl, venv creation failing, plus rust toolchain and TLS issues (#9463). The
haiku)script block was kept in the workflow and is unchanged here, so its beta5-erapkgman installlines (python3.11, openssl3, rust_bin, lz4_devel) get re-tested against beta6 for the first time in this run.1.5.0 also brings smaller NetBSD images, faster boots, and an opt-in
microvmvariant for NetBSD x86-64 (not enabled here — it changes the guest's virtual hardware).🤖 Generated with Claude Code