Skip to content

GHA/windows: increase timeout for vcpkg jobs due to slowness #15364

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 8 commits into from

Conversation

vszakats
Copy link
Member

@vszakats vszakats commented Oct 22, 2024

The openssl job no longer fits into 10 minutes since the 20241015.1.0
GHA windows-latest image update. This caused all runs to fail.

The run tests step takes ~10 minutes now, up from ~4. This is
6 minutes more than before these updates. It's seen with other vcpkg
jobs too, tests run slower than half speed since.

Bump the timeout to make it, though the headroom is now less than it
was.

Before:
https://github.com/curl/curl/actions/runs/11386748199/job/31679733295
https://github.com/curl/curl/actions/runs/11347976608/job/31560690219

After:
https://github.com/curl/curl/actions/runs/11462332743/job/31893491625?pr=15364

Ref: actions/runner-images@fcc4cdb
Ref: #15335 (comment)
Follow-up to 1e03059 #15356

@vszakats vszakats marked this pull request as draft October 22, 2024 14:26
@github-actions github-actions bot added Windows Windows-specific CI Continuous Integration labels Oct 22, 2024
The openssl job in particular no longer fits into 10 minutes since
the 20241015.1.0 GHA windows-latest image update.
The `run tests` step takes ~10 minutes now, up from ~4. That is
6 minutes more than before these updates.

c-ares got bumped from 1.33.1 to 1.34.1 in vcpkg and the affected
vcpkg job is the only one using this dependency.

It may be the reason for this regression.

Before:
https://github.com/curl/curl/actions/runs/11386748199/job/31679733295
https://github.com/curl/curl/actions/runs/11347976608/job/31560690219

After:
https://github.com/curl/curl/actions/runs/11462332743/job/31893491625?pr=15364

Ref: curl#15335 (comment)
@vszakats
Copy link
Member Author

vszakats commented Oct 22, 2024

So it looks like this issue not specific to any curl dependency:
ALL vcpkg jobs run tests at less than half the speed after this Windows runner update.

Perl is the same version. The OS itself, MSVC runtimes, vcpkg, Git for Windows all got updates.

actions/runner-images@fcc4cdb

@vszakats
Copy link
Member Author

Failing test 987 may also be related to such large drop in performance.

1e03059 #15356

This reverts commit 44677bc87e7e26ce4dccadef77c6155c77b996f2.

It's not caused by c-ares.
This reverts commit cc7fd0fd6078a042b25fa16f329cf75447cda3ce.

It's not libuv either.
@vszakats vszakats changed the title bump timeout to see if it's a hang or just slowness GHA/windows: increase timeout for vcpkg jobs due to slowness Oct 22, 2024
This reverts commit 29680ab.
@vszakats vszakats marked this pull request as ready for review October 22, 2024 17:13
@vszakats vszakats closed this in c33174d Oct 22, 2024
@vszakats vszakats deleted the gha-vcpkg-fallout branch October 22, 2024 17:15
vszakats added a commit that referenced this pull request Oct 23, 2024
Fix the significant perf regression for vcpkg jobs by switching to the
MSYS2 shell environment from Git for Windows. This env is already used
for old-mingw-w64 job that remained unaffected by this issue.

The issue began with the windows-runner update 20241015.1.0. It bumped
Git for Windows from Git 2.46.2.windows.1 to Git 2.47.0.windows.1. GfW
bumped its MSYS2 components, including `msys-2.0.dll`. That's Cygwin
code, which may have contributed to this. Pipes were involved and
`runtests.pl` relies on pipes heavily in parallel mode. (The issue was
not seen with parallel tests disabled, in retrospect.)

This is useful as a permanent solution too. It drop GfW as a dependency
and makes Windows jobs use one less shell/env flavour.

Long term it might help to use native Windows Perl to avoid the MSYS
layer completely, if there is a way to make that work.

Assortment of possibly related links:
https://cygwin.com/pipermail/cygwin/2024-August/256398.html
cygwin/cygwin@f78009c
cygwin/cygwin@7f3c225

actions/runner-images#10843
git-for-windows/git#5199
git-for-windows/msys2-runtime#75
git-for-windows/msys2-runtime@7913a41
git-for-windows/msys2-runtime@555afcb
cygwin/cygwin@1c5f4dc

Follow-up to c33174d #15364
Follow-up to 1e03059 #15356

Closes #15380
pps83 pushed a commit to pps83/curl that referenced this pull request Apr 26, 2025
The openssl job no longer fits into 10 minutes since the 20241015.1.0
GHA windows-latest image update. This caused all runs to fail.

The `run tests` step takes ~10 minutes now, up from ~4. This is
6 minutes more than before these updates. It's seen with other vcpkg
jobs too, tests run slower than half speed since.

Bump the timeout to make it, though the headroom is now less than it
was.

Before:
https://github.com/curl/curl/actions/runs/11386748199/job/31679733295
https://github.com/curl/curl/actions/runs/11347976608/job/31560690219

After:
https://github.com/curl/curl/actions/runs/11462332743/job/31893491625?pr=15364

Ref: actions/runner-images@fcc4cdb
Ref: curl#15335 (comment)
Follow-up to 1e03059 curl#15356
Closes curl#15364
pps83 pushed a commit to pps83/curl that referenced this pull request Apr 26, 2025
Fix the significant perf regression for vcpkg jobs by switching to the
MSYS2 shell environment from Git for Windows. This env is already used
for old-mingw-w64 job that remained unaffected by this issue.

The issue began with the windows-runner update 20241015.1.0. It bumped
Git for Windows from Git 2.46.2.windows.1 to Git 2.47.0.windows.1. GfW
bumped its MSYS2 components, including `msys-2.0.dll`. That's Cygwin
code, which may have contributed to this. Pipes were involved and
`runtests.pl` relies on pipes heavily in parallel mode. (The issue was
not seen with parallel tests disabled, in retrospect.)

This is useful as a permanent solution too. It drop GfW as a dependency
and makes Windows jobs use one less shell/env flavour.

Long term it might help to use native Windows Perl to avoid the MSYS
layer completely, if there is a way to make that work.

Assortment of possibly related links:
https://cygwin.com/pipermail/cygwin/2024-August/256398.html
cygwin/cygwin@f78009c
cygwin/cygwin@7f3c225

actions/runner-images#10843
git-for-windows/git#5199
git-for-windows/msys2-runtime#75
git-for-windows/msys2-runtime@7913a41
git-for-windows/msys2-runtime@555afcb
cygwin/cygwin@1c5f4dc

Follow-up to c33174d curl#15364
Follow-up to 1e03059 curl#15356

Closes curl#15380
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI Continuous Integration Windows Windows-specific
Development

Successfully merging this pull request may close these issues.

1 participant