Skip to content

Correct mirror - #9

Merged
bigbruno merged 3 commits into
openqa-single-instance-experimentfrom
main
Aug 7, 2026
Merged

Correct mirror#9
bigbruno merged 3 commits into
openqa-single-instance-experimentfrom
main

Conversation

@bigbruno

@bigbruno bigbruno commented Aug 7, 2026

Copy link
Copy Markdown
Member

No description provided.

A stable BigLinux KDE build died an hour in, retrieving packages pacman had
just resolved:

    error: failed retrieving file 'linux618-6.18.39-1-x86_64.pkg.tar.zst' ... 404
    error: failed retrieving file 'vtk-9.6.2-3-x86_64.pkg.tar.zst' ... 404
    ==> ERROR: Failed to install packages to new root

BUILD_MIRROR defaulted to `http://mirrors.manjaro.org/repo/`, and manjaro-tools
appends `/${target_branch}` to it (mkchroot -B "${build_mirror}/${target_branch}",
util-iso.sh), so every request went to `repo//stable/...`. To the CDN in front of
mirrors.manjaro.org that empty path segment is a cache key of its own, and
nothing refreshes it: the core.db served under it was two weeks old and named
kernel and vtk versions the origin no longer carries, while the package files
themselves came back fresh. Measured at the time of the failure:

    /repo/stable/core/x86_64/core.db    Last-Modified 06 Aug   linux618-6.18.42-1
    /repo//stable/core/x86_64/core.db   Last-Modified 23 Jul   linux618-6.18.39-1

read_inputs strips trailing slashes now, so no caller can reintroduce it. The
validation pattern already rejected an empty segment anywhere else in the path.
Every build logged this, a few seconds before spending four hours ignoring it:

    error: could not register 'biglinux-stable' database (database already registered)

Two places named the repositories. append_build_repos writes them into
/usr/share/manjaro-tools/pacman-<arch>.conf, and manjaro-tools then hands pacman
`cat pacman-<arch>.conf user-repos.conf` (get_pacman_conf, util-iso.sh) -- so the
[biglinux-stable] the profiles also declared arrived twice and pacman dropped the
second copy. [biglinux-update-stable], which only the profiles declared, was left
below stable instead of above it, where the packages held back from stable have to
be to win.

So append_build_repos declares update-stable for both distributions now -- it
already did for bigcommunity -- and configure_build_repos removes the profile's
user-repos.conf before buildiso reads it. The file is gone from sources/ and from
the generated profiles too; the community profiles still ship an empty one, which
is why the engine removes rather than forbids it.

No package changes hands: update-stable holds kernel-alive and latte-dock, neither
of which exists in biglinux-stable, biglinux-testing or the Manjaro repositories,
so its rank was never able to decide anything. It is ordered for the next package
that lands there, not for these two.

test_engine_repos.py covers the resulting order per distribution and branch,
including the no-duplicates property the error above was reporting.
fix: repair the two package-source defects that fail a stable build
@bigbruno
bigbruno merged commit 22feeeb into openqa-single-instance-experiment Aug 7, 2026
3 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.

1 participant