[Bug 1768112] Re: 7.47.0-1ubuntu2.2 is much slower than 7.22.0-3ubuntu4.17 for https
Shawn Zhou
1768112 at bugs.launchpad.net
Mon Apr 30 18:45:27 UTC 2018
strace output of curl 7.22.0
** Attachment added: "curl_7.22.0_strace.txt"
https://bugs.launchpad.net/ubuntu/+source/curl/+bug/1768112/+attachment/5130960/+files/curl_7.22.0_strace.txt
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to curl in Ubuntu.
https://bugs.launchpad.net/bugs/1768112
Title:
7.47.0-1ubuntu2.2 is much slower than 7.22.0-3ubuntu4.17 for https
Status in curl package in Ubuntu:
New
Bug description:
curl-7.47.0-1ubuntu2.2 spent lots of time reading CA certs before
sending "client hello"; on the other hand, curl 7.22.0 didn't spend
time reading CA certs before a "client hello" and after "server hello"
was received and it only read few CA certs. This made significant
difference in term of response time between 7.22.0 and 7.47.0.
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Ubuntu 12.04.5 LTS"
$ dpkg -l curl
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==============================================-============================-============================-=================================================================================================
ii curl 7.47.0-1ubuntu2.2 amd64 command line tool for transferring data with URL syntax
$ curl -w "@curl-format.txt" https://170.199.194.0:4443/@p1/heartbeat/ -k -s -o /dev/null
time_namelookup: 0.000
time_connect: 0.001
time_appconnect: 0.009
time_pretransfer: 0.009
time_redirect: 0.000
time_starttransfer: 0.011
----------
time_total: 0.011
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"
$ dpkg -l curl
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Description
+++-==============================================-==============================================-============================================================================================================
ii curl 7.22.0-3ubuntu4.17 Get a file from an HTTP, HTTPS or FTP server
$ curl -w "@curl-format.txt" https://170.199.194.0:4443/@p1/heartbeat/ -k -s -o /dev/null
time_namelookup: 0.000
time_connect: 0.001
time_appconnect: 0.256
time_pretransfer: 0.256
time_redirect: 0.000
time_starttransfer: 0.257
----------
time_total: 0.257
The problem was that when cul-7.47.0 compiled with gnutls and with --with-ca-path=/etc/ssl/certs, it would read all certificates from the path before sending client hello; on the other hand, when it's compiled libssl and it's fine. I checked the build option for 7.22.0-3ubuntu4.17, only --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt was used.
curl built with gnutls with --with-ca-bundle and without --with-ca-
path was still slower than the built with libssl.
What needs to be done to build 7.47.0 with similar response time for
https as 7.22.0?
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/curl/+bug/1768112/+subscriptions
More information about the foundations-bugs
mailing list