Skip to content

CI: cross-platform-actions 1.5.0, re-add haiku (r1beta6) - #10249

Open
ThomasWaldmann wants to merge 9 commits into
borgbackup:masterfrom
ThomasWaldmann:ci-cpa-1.5.0-haiku-beta6
Open

CI: cross-platform-actions 1.5.0, re-add haiku (r1beta6)#10249
ThomasWaldmann wants to merge 9 commits into
borgbackup:masterfrom
ThomasWaldmann:ci-cpa-1.5.0-haiku-beta6

Conversation

@ThomasWaldmann

Copy link
Copy Markdown
Member

Bumps cross-platform-actions/action to v1.5.0 (pinned to faa0c61, resolved from the annotated v1.5.0 tag) and brings Haiku back into the vm_tests matrix at r1beta6, 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-era pkgman install lines (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 microvm variant for NetBSD x86-64 (not enabled here — it changes the guest's virtual hardware).

🤖 Generated with Claude Code

@codecov

codecov Bot commented Aug 28, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 60.00000% with 6 lines in your changes missing coverage. Please review.
✅ Project coverage is 87.47%. Comparing base (5fb717a) to head (f41b398).
⚠️ Report is 11 commits behind head on master.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
src/borg/fslocking.py 0.00% 4 Missing ⚠️
src/borg/helpers/fs.py 60.00% 1 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master   #10249      +/-   ##
==========================================
- Coverage   87.48%   87.47%   -0.01%     
==========================================
  Files         103      103              
  Lines       18540    18551      +11     
  Branches     2844     2846       +2     
==========================================
+ Hits        16219    16228       +9     
- Misses       1624     1626       +2     
  Partials      697      697              

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

ThomasWaldmann and others added 8 commits August 29, 2026 22:37
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>
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>
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>
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>
borg serve parses SSH_ORIGINAL_COMMAND as the command line its client
wants to run (ssh forced command support). When the test suite itself
runs in an ssh session that has one - as on the haiku CI runner, where it
is "cd <workspace> && ..." - every borg serve a test starts tries to
parse that, fails and exits before serving anything, so the borg 1.x
ssh:// transfer test only saw its connection being closed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@ThomasWaldmann
ThomasWaldmann force-pushed the ci-cpa-1.5.0-haiku-beta6 branch from d5237c9 to ddb7ac4 Compare August 29, 2026 20:38
This VM keeps handing back data that does not match what was written or
sent: rustc crashed on its own metadata once and pip has now seen three
sha256 mismatches on the same cython wheel, with a different wrong hash
each time. Retry the installs with a purged pip cache instead of losing
the whole job to one corrupted download.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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