Skip to content

More fixes to accomodate new CI runners - #1773

Merged
bruno-fs merged 3 commits into
rhinstaller:mainfrom
bruno-fs:new-runners-cleaned-up
Oct 2, 2026
Merged

bruno-fs merged 3 commits into
rhinstaller:mainfrom
bruno-fs:new-runners-cleaned-up

Conversation

@bruno-fs

@bruno-fs bruno-fs commented Oct 1, 2026

Copy link
Copy Markdown
Contributor
  • disable tests failing on new runners due to egress rules
  • fix networking issues with https on squid proxy

basic-ftp install from an ftp:// URL. On our new runners outbound TCP/21
to the internet is denied at falls through to an implicit deny. The connection
is dropped rather than refused, so the tests hang for the full timeout instead
of failing. Tracked as INSTALLER-4942.

Only the Fedora scenarios are affected. The RHEL defaults point at
download.devel.redhat.com, which is internal and answers on 21 from these
hosts.
Peeking at the ClientHello reads the SNI, which lets squid ask the parent
proxy for a hostname and keeps the access log readable. But on an
intercepted port squid then verifies that the SNI resolves to the address
the client actually connected to, and answers a mismatch with an HTTP 409.
It has not bumped the connection at that point, so the error page goes out
as cleartext on a socket the client is still TLS-handshaking on. Go reports
"server gave HTTP response to HTTPS client", OpenSSL reports "wrong version
number", and a bootc install dies immediately.

The mismatch is routine rather than an attack. quay.io serves blobs from
cdn01.quay.io, which is on Akamai and rotates its answer set within seconds,
so the address a test VM resolved is frequently absent from the set squid
resolves a moment later. Measured on a runner, two of three addresses
changed between queries four seconds apart, while quay.io itself returned
the same eight every time - and every 409 in a full day of that runner's
access log was this one host.

There is no way to turn the check off: squid 5 always answers a suspicious
intercepted CONNECT with a 409, host_verify_strict notwithstanding. Not
peeking means there is no SNI, nothing to verify, and squid asks the parent
for the raw address, which it accepts. The cost is that 443 is logged by
address rather than by name.

The failure was expensive out of proportion to the three seconds it takes:
anaconda treats it as a fatal payload error and parks on the error dialog,
so the VM stays up until virt-install's --wait 30 expires and the test is
billed a full thirty minutes, twice with the retry. On gh-runner-01 a
fedora_rawhide bootc run took 69 minutes with three such timeouts before
this change and under five minutes with none after it.

Assisted-by: Claude Opus 5
@bruno-fs
bruno-fs marked this pull request as ready for review October 2, 2026 09:21
@rvykydal

rvykydal commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

/test-os-variants

@rvykydal rvykydal left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. Thank you!

@bruno-fs
bruno-fs merged commit 337ced0 into rhinstaller:main Oct 2, 2026
3 checks passed
@bruno-fs
bruno-fs deleted the new-runners-cleaned-up branch October 2, 2026 11:44
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.

2 participants