runtests: assume Time::HiRes, drop Perl Win32 dependency#18287
Closed
vszakats wants to merge 7 commits intocurl:masterfrom
Closed
runtests: assume Time::HiRes, drop Perl Win32 dependency#18287vszakats wants to merge 7 commits intocurl:masterfrom
Time::HiRes, drop Perl Win32 dependency#18287vszakats wants to merge 7 commits intocurl:masterfrom
Conversation
it's present in all supported Perl versions. It's also already used unconditionally from servers.pm. https://perldoc.perl.org/5.8.0/Time::HiRes
Time::HiRes, drop Win32 dependency
Time::HiRes, drop Win32 dependencyTime::HiRes, drop Perl Win32 dependency
Member
Author
|
And indeed the fork error remains, but it's now happening not with https://github.com/curl/curl/actions/runs/16971072810/job/48107907170?pr=18290 |
vszakats
added a commit
that referenced
this pull request
Aug 18, 2025
`Win32::Process::List` and `Win32::Process`. To replace external calls to `tasklist.exe` and `taskkill.exe`. The perl modules are wrappers/binding to Win32 API calls. They avoid launching external processes with a command shell (including MSYS2), the external tool, and creating command-lines and parsing tool output. According to local tests and the CI, one test session calls `tasklist.exe` 350-400 times. `taskkill.exe` is rarely called: https://github.com/curl/curl/actions/runs/17012376726?pr=18296 It's hard to predict any possible side-effect of dynamically loading the two necessary, module DLLs into the Perl process. The MSYS2 runtime if prone to fail when doing this in fork operations, as seen earlier with the Win32.DLL module. But, is looks like a symptom, not the root cause for these failures, because the failures are present with or without perl.exe loading the Win32.DLL. Ref: be01b60 #18287 Cherry-picked from #18296 Closes #18308
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.
Time::HiReswas already used unconditionally before this patch inservers.pm. This package, and functions used by runtests (sleepandgettimeofday) are supported by the minimum Perl version required forcurl:
https://perldoc.perl.org/5.8.0/Time::HiRes
portable_sleep()wrapper in favor ofTime::HiRes::sleep().Time::HiResunconditionally inserverhelp.pm.Win32package where available. It was includedto provide a Windows fallback for
Time::HiRes::sleep(). It was neveractually called (on supported Perl versions), but the dependency may
have loaded
Win32.dll, which often appears in failed fork operationsin GHA logs.
Ref: a6fed41 Improvements for the Perl-based testsuite running on Windows #5054 Various attempts to improve AppVeyor Windows builds #5034
Ref: Windows CI/GHA, jobs failing #14854
Most likely doesn't make a difference in practice.