Skip to content

Investigate and fix FreeBSD 14.3 CI failure (#372) - #373

Merged
jiegec merged 1 commit into
lsof-org:masterfrom
hugojosealmeida:sdlc/issue-372-investigate-and-fix-freebsd-14-3-ci-fail
Oct 29, 2026
Merged

jiegec merged 1 commit into
lsof-org:masterfrom
hugojosealmeida:sdlc/issue-372-investigate-and-fix-freebsd-14-3-ci-fail

Conversation

@hugojosealmeida

Copy link
Copy Markdown
Contributor

Summary

The freebsd (14.3) job failed because FreeBSD removes release artifacts from download.freebsd.org when a release reaches end-of-life, so fetching 14.3-RELEASE/src.txz returned HTTP 404 and set -e aborted the script before either build path could run.

The FreeBSD matrix now uses the supported 14.5 and 15.1 releases. The source-set fetch first tries download.freebsd.org and, if that fails, retries the same release from archive.freebsd.org/old-releases, removing any partial file first. The Cirrus FreeBSD matrix was also moved off the retired 14.3 image, and its kernel-source clone now runs only when the expected kern_lockf.c is actually missing, deriving the releng/* branch from uname -r.

Changes

  • .github/workflows/build.yml: replace 14.3 with 14.5 in the FreeBSD matrix and add the archived-source fallback when the main mirror fetch fails.
  • .cirrus.yml: replace the EOL FreeBSD images with 14.5 and 15.1, and make the kernel-source clone conditional on the required kern_lockf.c being absent.

Verification

  • ruby -e 'require "yaml"; ...' -> both .github/workflows/build.yml and .cirrus.yml parse successfully.
  • Extracted the workflow fetch block and executed it with mocked uname/fetch/tar -> on a simulated 14.3 main-mirror failure it fetched https://archive.freebsd.org/old-releases/amd64/14.3-RELEASE/src.txz; on a simulated 14.5 success it fetched only the main mirror.
  • python3 HEAD requests -> 14.5-RELEASE/src.txz and 15.1-RELEASE/src.txz return 200 from download.freebsd.org; the archived 14.3 source returns 200 from archive.freebsd.org.
  • git diff --check -> clean.

Risks / Follow-ups

  • The FreeBSD VM jobs were not executed locally; the PR CI run is needed to confirm both vmactions entries pass end-to-end.
  • The fallback triggers on any main-mirror fetch failure, not only HTTP 404. This is intentional for resilience; a failing archive fetch still aborts the job.

This PR is AI Assisted.

Closes #372

@jiegec
jiegec merged commit c1ec38a into lsof-org:master Oct 29, 2026
17 checks passed
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.

Investigate and fix FreeBSD 14.3 CI failure

2 participants