-
-
Notifications
You must be signed in to change notification settings - Fork 6.9k
Description
I did this
I have a test that adds 500 handles to a multi handle and then drives the transfers using "multi socket" api.
The transfers are simple HTTP1.1 GET requests to a localhost server, the responses are 200 with no payload.
There is no TLS.
The multi is limited to creating 6 connections using CURLMOPT_MAX_HOST_CONNECTIONS
,
When the test is run with curl 8.13.0 it completes in about 0.4s.
When the test is run with curl 8.14.1 is completes in about 6s
I see the same behaviour on linux and windows.
Attached are the curl info text logs from running the test with 50 handles added to the multi.
They seem to show that in 8.13.0 when a connection becomes available, only a single transfer transitions [PENDING] -> [CONNECT]
. However in 8.14.1 every pending transfer transitions to the connect state.
curl_8_13_0_good_multi.log
curl_8_14_1_bad_multi.log
I expected the following
I expected similar performance between curl versions
curl/libcurl version
Regression in curl/8.14.1
operating system
Linux DESKTOP-L7IDC5E 5.15.167.4-microsoft-standard-WSL2 #1 SMP Tue Nov 5 00:21:55 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Windows 11 Enterprise 24H2