Test the newest git-annex build (OsPath); BeeGFS export/EBUSY issue fixed by it - #15
Merged
Merged
Conversation
install-git-annex-daily.sh took con/git-annex build-ubuntu.yaml runs with ?status=success. That is the whole run's conclusion, and the nfs-home test job there has been red on every run since 2026-09-23 (con/git-annex#293), so every git-annex cell kept installing 10.20260901+git47 from run 35576118792 (2026-09-21), and BeeGFS 7.4.6 on 2026-09-28 even got git42 from 34820527339. In particular no cell has yet tested the first build with OsPath (con/git-annex#295), which is what matters for the BeeGFS rename/EBUSY failures. - bin/ci/pick-git-annex-build.sh (new): newest master schedule / workflow_dispatch run that has an unexpired git-annex-debianstandalone-packages_* artifact -- uploaded only once build-package succeeded, so that is the real signal. Run once in the `matrix` job, so all cells of a workflow run test the same build. Today it picks 36399800528 (2026-09-28); the old query still says 35576118792. - install-git-annex-daily.sh: takes that run id (positional or GIT_ANNEX_RUN_ID; picks itself when empty), writes the build URL, package and `git annex version` head to the job summary, and fails if a flag in EXPECT_BUILD_FLAGS (default "OsPath") is missing, so a cell cannot silently measure a different build. - test.yaml: matrix job gets actions: read and the pick step (continue-on-error: cells fall back to picking themselves). Tested: shellcheck (26 scripts), known-issues and unit checks; picker run against the live API through a `gh api --jq` stand-in; flag check against present / missing / disabled / substring (OsPathX) cases. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013n9Q2igij49kxdtiakUzYv
In this PR's first run the matrix job picked 35319817132 (2026-09-18, no OsPath) although 11 newer master runs, each with its package artifact, precede it -- the same query picks 36399800528 locally. install-git-annex-daily.sh's new flag check caught it (the cells went red with "lacks expected build flag(s): OsPath" instead of silently testing an old build), but the picker must not skip them. The cause is not reproducible here, so: log run id, event, date, conclusion and the artifact count for every candidate considered, and iterate over an array with gh reading /dev/null instead of a `while read ... <<< "$runs"` loop whose stdin gh would share. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013n9Q2igij49kxdtiakUzYv
With this PR's picker the git-annex cells finally ran the first OsPath build (con/git-annex run 36399800528, 10.20260901+git71), and on both BeeGFS versions every test group passes: pass 838 fail 0, no renamePath/EBUSY, no hang -- known_issues.py flagged the entry "did not reproduce -- fixed?" on both cells. The 2026-09-28 matrix on the non-OsPath git42/git47 builds (run 36417303910) failed exactly the entry's tests (7.4.6: 8 failures, 24 EBUSY; 8.1.0: 3 failures and the `conflict resolution (removed file)` hang to exit 124). Upstream git47..git71 changes nothing in the export or rename paths, so the build flag is the difference, as the upstream BeeGFS bug report said. Dropping the entry (rather than keeping it as known) makes a recurrence a red cell; install-git-annex-daily.sh already refuses non-OsPath builds. GOTCHAS.md's "BeeGFS / git-annex test" section now records the resolution, the evidence, and the one-off ~9.5 min stall seen on 7.4.6; the generated known-issues block was regenerated with `bin/ci/known_issues.py gotchas`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013n9Q2igij49kxdtiakUzYv
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.
Problem
bin/ci/install-git-annex-daily.shasked con/git-annex forbuild-ubuntu.yamlruns with?status=success. That is the whole run's conclusion. Thetest-annex (nfs-home)job there has been red on every run since 2026-09-23 (con/git-annex#293), so no run qualified as successful. As a result:10.20260901+git47from 35576118792, and BeeGFS 7.4.6 gotgit42from 34820527339;… S3 WebDAV Servant, with no OsPath.Changes
1. Install the newest build, and check its flags
bin/ci/pick-git-annex-build.sh(new) picks the newest masterschedule/workflow_dispatchrun that still has an unexpiredgit-annex-debianstandalone-packages_*artifact.build-packagesucceeds, so its presence is the real signal. The run's own conclusion is only logged.pull_requestbuilds are skipped, since they carry unmerged patches.test.yaml: thematrixjob runs the picker once, withactions: read, and passes the run id to every cell, so all cells of a workflow run test the same build.continue-on-error; if it fails, each cell picks for itself.bin/ci/install-git-annex-daily.sh:GIT_ANNEX_RUN_ID;git annex versionheader to the job summary;EXPECT_BUILD_FLAGSis missing. The default isOsPath;""disables the check.2. Known issues, now that an OsPath build runs
evals/known-issues.yaml:beegfs-annex-export-busyis removed, not left in place as known. A recurrence should turn the cell red, and non-OsPath builds are now refused anyway.GOTCHAS.md:bin/ci/known_issues.py gotchas.Results (run 36475373813 on 5291abf)
The picker chose
con/git-annex run 36399800528 (schedule, 2026-09-28…, run failure): 1 package artifact(s). Every git-annex cell installed10.20260901+git71, whose build flags are… Servant OsPath.export and import×3,… of subdir×3,git-remote-annex exporttree×2), 24×Device or resource busypass 838 · fail 0, all 26 test groups passconflict resolution (removed file)until the timeout (exit 124)pass 838 · fail 0, 6m6sloop-annex-diskreserve)known_issues.pyreported'beegfs-annex-export-busy' did not reproduce -- fixed?.Fix found by this PR's own first run
The first push picked 35319817132 (09-18, no OsPath), even though 11 newer runs came first. The new flag check caught it: the cells went red with
lacks expected build flag(s): OsPathinstead of quietly testing an old build.gh apiinsidewhile read … <<< "$runs"shared the loop's stdin.gh</dev/null.Testing
bin/ci/shellcheck.shis clean on 26 scripts, andrun-checks.sh known-issuesandunitpass.🤖 Generated with Claude Code
https://claude.ai/code/session_013n9Q2igij49kxdtiakUzYv