Repository navigation
Conversation
bruno-fs
force-pushed
the
adapt-to-openshift-runners
branch
2 times, most recently
from
October 1, 2026 14:09
7d098ca to
aaed85a
Compare
|
|
||
| source ./scripts/defaults.sh | ||
| if [ -e "./scripts/defaults-${platform}.sh" ]; then | ||
| source "./scripts/defaults-${platform}.sh" |
|
|
||
| # Last run's answer, so a mirror that still works is kept rather than rolled. | ||
| if [ -e "${state}" ]; then | ||
| source "${state}" |
dl.fedoraproject.org and download.fedoraproject.org both redirect http to https. A transparent cache can only store plain http - https is spliced through untouched - so every rpm was fetched again on every test, and a suite downloaded the same packages dozens of times over. Point rawhide at mirrors.rit.edu and ELN at ftp-stud.hs-esslingen.de, both of which answer 200 over plain http and so are actually cacheable. ELN moves from https to http for that reason; rpm signatures and repomd checksums still apply, and rawhide was already plain http. The rawhide FTP URL moves to the same host as its http URL, replacing ftp.halifax.rwth-aachen.de. ELN already used esslingen for FTP. KSTEST_METALINK and KSTEST_MIRRORLIST are deliberately left alone: those tests exist to exercise mirror selection. Rawhide's KSTEST_MODULAR_URL is also untouched - that tree is retired and 404s on every mirror, which is a separate problem. Assisted-by: Claude Opus 5
The timeout is what a hung test actually costs: anaconda frequently fails within seconds and then sits on its error dialog until virt-install --wait gives up, so every failure is billed at the full timeout regardless of how quickly it went wrong. Measured over 2495 successful runs on the OpenShift runners (2026-09-28 and -09-30, all six scenarios): median 6.3 min, p99 10.8 min, slowest single run 15.1 min. No scenario exceeded 15.1, so 20 leaves about a third in hand and would not have failed any observed passing run. daily-iso-webui goes 40 -> 25 on the same basis; its slowest success was 12.3 min, no worse than the others. The old values were sized for the OpenStack instances, where the same suite had a p99 of 25.8 min and a slowest success of 31.9 - there 20 would have killed 5% of passing tests. Worth restoring if this ever runs on hardware of that speed again. Tests that need longer already declare their own get_timeout() and are unaffected. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Esslingen is in Germany and stalls on sustained transfers, which is what these tests do. Fetching ELN's 878MB install.img from a runner, fcix finished in 22-31s at 27-37 MB/s; Esslingen managed 0.7-1.4 MB/s and hit a five-minute cap on both attempts. FTP stays on Esslingen - fcix runs no FTP server, and no US mirror carries ELN over FTP. Assisted-by: Claude Opus 5
The caching proxy keys on URL, so a mirror that differs between tests, or between runs, is a cache that is always cold. Choose once on the host and pass the answer to every test through the environment. The choice is remembered in the runner's home, outside the workspace that is wiped at the start of each run, and only revisited when the mirror stops answering. Assisted-by: Claude Opus 5
A full ELN run on mirror.fcix.net produced failures that this mirror does not, and we do not know why: the two serve byte-identical repodata and the same packages. fcix is far faster, so this costs us, but ELN goes back to where it is known to pass. Selection is left off for ELN so that a failover cannot put fcix back before we understand this. Assisted-by: Claude Opus 5
It was a shell block inside the YAML, which is the one place it cannot be run by hand. As a script it can be: scripts/select-mirrors.sh PLATFORM [STATE_DIR]. Assisted-by: Claude Opus 5
launch already runs whichever tests you name; what was missing locally was the setup the workflow does around it - the caching proxy, and choosing the payload mirror once so the proxy has something stable to cache. Assisted-by: Claude Opus 5
No mirror is named for Rawhide any more. One is chosen from MirrorManager and kept while it answers, so a mirror being retired needs no edit. Only mirrors serving plain http are accepted, because that is what the caching proxy in front of the runners can store, and the advertised protocol understates this - several listed as https serve http as well. defaults-fedora_rawhide.sh stops being a symlink to defaults.sh so that it can say which repo to ask about without every other platform, RHEL included, inheriting Rawhide's. Assisted-by: Claude Opus 5
eval of an empty string succeeds, so a selector that could not run at all - missing, not executable - left the mirrors unset and said nothing. The tests then ran against URLs built from an empty string. Take the selector's output through a variable so its exit status is seen, give it an explicit one of its own (the read loop ends non-zero when there is nothing to choose), and refuse to carry on when a platform asked for a mirror and did not get one. Assisted-by: Claude Opus 5
An interrupted download left a short file that every later run then took for the cached ISO, with "isoinfo: Short read on old image" as the only hint. Download under a temporary name and rename it once curl is done. Assisted-by: Claude Opus 5
check-mirrors.sh is quiet when it keeps the previous choice, which is the usual case, so a run said nothing about where its payload came from - the first thing wanted when one behaves oddly. On stderr, so stdout stays parseable for $GITHUB_ENV. Assisted-by: Claude Opus 5
The choice was made inside the block that downloads one, so callers bringing their own - anaconda's /kickstart-test hands Permian an ISO built from the PR - ran with no mirror at all, and on Rawhide, which pins none, with an empty URL. Go through select-mirrors.sh rather than check-mirrors.sh so these runs are as sticky, and as loud about what they picked, as the daily one. A mirror the caller already named still wins. Assisted-by: Claude Opus 5
bruno-fs
force-pushed
the
adapt-to-openshift-runners
branch
from
October 2, 2026 12:30
aaed85a to
610036c
Compare
This branch has not been deployed
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.
No description provided.