Skip to content
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

curl 7.87.0 seems to break curl_multi_socket_action #10146

Closed
q234rty opened this issue Dec 22, 2022 · 5 comments
Closed

curl 7.87.0 seems to break curl_multi_socket_action #10146

q234rty opened this issue Dec 22, 2022 · 5 comments

Comments

@q234rty
Copy link

q234rty commented Dec 22, 2022

I did this

cd docs/examples
gcc -lcurl -levent hiperfifo.c
./a.out

Then open another terminal and do
echo "https://envs.net" > hiper.fifo
It took about 2 minutes for the program to finish the request.

I expected the following

The request is finished in a timely manner.

curl/libcurl version

curl 7.87.0 (x86_64-pc-linux-gnu) libcurl/7.87.0 OpenSSL/3.0.7 zlib/1.2.13 brotli/1.0.9 zstd/1.5.2 libidn2/2.3.4 libpsl/0.21.1 (+libidn2/2.3.4) libssh2/1.10.0 nghttp2/1.51.0
Release-Date: 2022-12-21
Protocols: dict file ftp ftps gopher gophers http https imap imaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd

operating system

Arch Linux with kernel 6.1.1-arch1-1, openssl 3.0.7-4, libevent 2.1.12-4

@q234rty
Copy link
Author

q234rty commented Dec 22, 2022

Bisected this to dafdb20

@bagder
Copy link
Member

bagder commented Dec 22, 2022

@icing I think we need to start out by double-checking what the *getsock() calls returns for this case. This has the smell of a problem in there.

@icing
Copy link
Contributor

icing commented Dec 23, 2022

@bagder is there more information tbh on how curl multi is used in this case?

@bagder bagder changed the title curl 7.87.0 seems to break curl_multi curl 7.87.0 seems to break curl_multi_socket_action Dec 23, 2022
@icing
Copy link
Contributor

icing commented Dec 23, 2022

Hmm, I am unable to reproduce on a 7.87.0 build. It opens (and keeps a HTTP/2) connection and performs all requests in time.

@q234rty
Copy link
Author

q234rty commented Dec 23, 2022

@icing It's possible that reproducing this requires certain network conditions. If you need any debug output etc. from me feel free to comment on this issue.

Edit: Just in case you're wondering, there's no proxy in my network environment.

@bagder bagder closed this as completed in 728400f Dec 27, 2022
algitbot pushed a commit to alpinelinux/aports that referenced this issue Jan 12, 2023
algitbot pushed a commit to alpinelinux/aports that referenced this issue Jan 12, 2023
matthewsot pushed a commit to ygina/curl that referenced this issue Jan 19, 2023
When there are filters addded for both socket and SSL, the code
previously checked the SSL sockets during connect when it *should* first
check the socket layer until that has connected.

Fixes curl#10157
Fixes curl#10146
Closes curl#10160

Reviewed-by: Stefan Eissing
bell-sw pushed a commit to bell-sw/alpaquita-aports that referenced this issue Mar 16, 2023
[ commit f3e6f81620c2d24dc6ad0e7bd1fae057d3422bc3 ]

curl/curl#10146
curl/curl#10148
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging a pull request may close this issue.

3 participants