-
-
Notifications
You must be signed in to change notification settings - Fork 6.7k
curl 8.12.1 cygwin test 582/583 hang infloop ssh-agent using all CPU #16437
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
Comments
Can't we just add a check for those tools and fail starting the server if missing? |
Can't you just use the normal Unix commands, as nothing is missing, all the ~3K normal Unix tools, servers, and daemons are available, but are not being used for some strange reason in the Cygwin environment, rather than the Windows tools which may not be available, and typically will not DTRT in this case, but could be used for the Mingw64-x86_64 build using Cygwin cross-tools. |
If you say so, sure, then I suppose someone should try doing that change in the script. |
That's why I asked for hints or pointers to the locations of the relevant test scripts, inputs and outputs, which do not seem to be obviously connected to the specific tests, possibly due to indirection via perl runners, or other bits or pieces? |
I just grepped for "icacls" and found its use in tests/sshserver.pl, the script that fires up the ssh server for test purposes: Lines 424 to 430 in 4c50998
|
In this case, But, since its job wasn't done, it's possible that SSH gets messed up without Agreed that under Cygwin, it'd be better to use its native tools, and a patch |
The ACL utilities are part of the base system package including the DLL and utilities; not often used for directory or file setup: useful if any directory ends up with no DACLs, which means files end up with no ACLs and inaccessible. The fileutils My gotos for server and client setup info are the Cygwin CI is Scallywag, home grown?, originally available under Appveyor, and now also GHA, which most use, although some purists will not because of principles. |
Well, our goal (my goal) was simply to make Cygwin work with good We're using what's available, accessible and practical, with the official The tools and scripts you mention sound nice, and knowing they exist Turning our CI to a purist Cygwin env would probably take adding |
Made an attempt to replicate the https://linux.die.net/man/1/setfacl Tried: Lines 421 to 435 in d1440e2
07014ba That hit this:
https://github.com/curl/curl/actions/runs/13510332690/job/37749076435?pr=16465#step:12:1181 What would be the correct call equivalent to Ref: #16465 |
I tried
Removing inheritance would be key, which is (Maybe the matching openssh.exe would see some change? Seems doubtful if no other tools do.) Is there a way to do this with The terse output of these tools, like "Not supported", "illegal acl entries" or no output at all (on "success"), makes it extremely difficult to figure out what's going on, even on a local machine. So far my impression is that this isn't a curl issue, but a |
You should see something like the below running
shown by:
or:
I use
used in conjunction with shell function:
to modify and show everything related to Cygwin directories and files. The following patch was recently applied to Github Actions CI, run whenever a package build script or patch is checked into Cygwin git package repos: |
Thanks @BrianInglis. I re-tested locally with a 2018 installation of Cygwin (BTW, I wish there was a way to install Cygwin without access to an online Windows machine). Right away, its This, while using a pure While there, I also moved Cygwin from C: to D:, saving noticeable time in the install step (sample size: 1 at 1m30s; but the longer install times (~2-3 minutes) were consistent before this patch.) I wanted to move edit: This seemed unusually smooth, so I deleted all |
To use a native Cygwin tool instead of the Windows `icacls`. It allows running under Cygwin/MSYS without Windows system folders in the `PATH`. Also: fix indentation and tidy up syntax of the `icacls` branch. Note: As of this commit, these `setfacl` and `icacls` calls are not necessary for a successful CI run. This includes OpenSSH for Windows tests, that aren't run by default. Keep them anyway, because locally they may be necessary depending on environment. Reported-by: Brian Inglis Fixes curl#16437 Ref: curl#16803 Closes curl#16465
Use the `PATH` `/usr/bin` to avoid any Windows system or 3rd-party tool installed on the runner machine that may interfere with or add undesired dependencies to the builds and tests. Follow-up to d838d43 curl#16465 Ref: curl#16437 Closes curl#16814
I did this
Running *Cygwin
autoconfig
/automake
, with no Windows dirs inPATH
,make check
hangs about tests 582/583, not findingicacls
, andssh-agent
pegging system until killed.Hints or pointer to docs about how to dig down into those test inputs and outputs gratefully received: been trying with limited success for years!
I expected the following
Normal tests 582-3 execution and result.
See attached log.
curl-8.12.1-cygwin-test-582-583-hang-infloop-ssh-agent.log
If
uname -o
== Cygwin, POSIX chmod or setfacl should be used as under any other POSIX, UNIX, or Linux system, as Windows icacls ACLs may be incompatible with Cygwin's emulation of POSIX ACLs using Windows ACLs and vice-versa (especially Cygwin's use of NULL SID first to block everything, which File Explorer whines about disliking, despite being perfectly legal in Windows ACLs, which File Explorer does not properly support).Cygwin's POSIX network and file I/O emulation using Windows may be incompatible with Windows network and file I/O without changes, although curl, libcurl, and programs built with them are compatible with other POSIX systems, but may not be with Windows builds.
Note the weird line endings on some output: no longer supported in most Cygwin programs, other than some random character in data, to be compatible with scripts and programs under POSIX, UNIX, and Linux.
curl/libcurl version
curl 8.12.1 (x86_64-pc-cygwin) libcurl/8.12.1 OpenSSL/3.0.15 zlib/1.3.1 brotli/1.1.0 zstd/1.5.6 libidn2/2.3.7 libpsl/0.21.5 libssh2/1.11.0 nghttp2/1.61.0 libgsasl/2.2.1 OpenLDAP/2.6.9
Release-Date: 2025-02-13
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss
Features: alt-svc AsynchDNS brotli gsasl GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd
operating system
$ uname -srvmo
CYGWIN_NT-10.0-19045 3.5.7-1.x86_64 2025-01-29 19:46 UTC x86_64 Cygwin
The text was updated successfully, but these errors were encountered: