CI: retry the Qt install on Windows - #2
Open
starlit-void wants to merge 1 commit into
Open
Conversation
`aqt install-qt` fails intermittently on Windows with
WARNING : Caught Bad7zFile, terminating installer workers
ERROR : Specified path is bad: lib/cmake/Qt6ShaderToolsPrivate
This is not a corrupt download. It is a false positive in py7zr's path
traversal check, which rejects an output path that is genuinely inside
the destination directory. The check was tightened for CVE-2026-23879,
and the archive entry named in the error differs from run to run, so the
same command succeeds on a later attempt.
Reported upstream, still open:
miurahr/aqtinstall#995
miurahr/py7zr#714
Route the three install-qt calls through a small `:install_qt` helper
that retries up to three times before giving up. Failures still surface
immediately when all attempts fail, so the fail-fast behaviour added
earlier is preserved.
Pinning py7zr below the version that introduced the check would also
work, but that reintroduces the CVE it fixed, along with two other
advisories fixed in the same release. Retrying costs a little CI time
only on the runs that would otherwise have failed outright.
starlit-void
force-pushed
the
starlit/ci-retry-qt-install
branch
4 times, most recently
from
August 3, 2026 06:22
975fe74 to
e36357e
Compare
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.
Fork-internal PR, opened to exercise the changed workflow on real Windows runners before proposing it upstream.
aqt install-qtfails intermittently on Windows withBad7zFile: Specified path is bad: <entry>. It is not a corrupt download: it is a false positive in py7zr's path traversal check, tightened for CVE-2026-23879, which rejects an output path that is genuinely inside the destination directory. The entry named in the error differs from run to run, so a repeat attempt usually succeeds. Open upstream as aqtinstall#995 and py7zr#714, with the aqt maintainer pointing at py7zr as the cause.This routes the three
install-qtcalls through an:install_qthelper that retries up to three times. The fail-fast behaviour added in YACReader#579 is preserved: when all attempts fail, the step still fails at the install rather than surfacing later as a phantom build error.Pinning py7zr below the version that introduced the check would also work, but reintroduces that CVE plus two other advisories fixed in the same release.
What this run is checking
The batch logic could not be tested locally (macOS). Specifically:
exit /b 0breaking out of afor /linside acalled subroutine||seeing the subroutine's exit codegoto :eofending the main body with the correct errorlevel:install_qtlabel at column 0A green Windows x64 and Windows ARM64 here confirms all four. Because the bug hits roughly half of Windows runs, a re-run or two may also exercise the retry path itself rather than just the happy path.