cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: Curl 7.38 gets stuck in SSL Handshake with Proxies

From: Alibek Joraev <alibek.joraev_at_gmail.com>
Date: Wed, 15 Oct 2014 16:59:13 +0100

UPDATE:

I tried my test with Curl 7.37.0 and it works fine. so this problem occurs
only in 7.38.0

I am currently on 7.24.0 and tried to upgrade to 7.38.0. so regression (if
any) was introduced between 7.37.0 and 7.38.0.
not earlier.

Details: OS: iOS 7.1.2.
Case: Simple GET to "https://www.google.com" via Squid Proxy which
requires Basic authentication.

On Wed, Oct 15, 2014 at 3:45 PM, Alibek Joraev <alibek.joraev_at_gmail.com>
wrote:

> hi !
>
> just an update: I could not reproduce this case even with multi
> interface.
> This case is very complex, with custom sockets and SSL (which Curl uses
> via callbacks).
> Currently my theory is that Curl tries to do protocol connect when it is
> not supposed too or I am using Curl wrong way.
> if I find problem (and workaround - I will update you guys on that).
> If not, then I will give up this case for a while, and try with new Curl
> releases.
>
> br.,
> Alibek
>
> On Mon, Oct 13, 2014 at 7:07 PM, Alibek Joraev <alibek.joraev_at_gmail.com>
> wrote:
>
>> hi !
>>
>> I just wanted to say - that I tried to write simple independent sample
>> app which can reproduce this issue (Curl 7.38.0 gets stuck in wrong state
>> after receiving server SSL Hello when getting HTTPS target via Proxy which
>> requires authentication. while 7.24.0 works fine).
>>
>> Unfortunately - in simple app (using easy handles) it works fine. Then, I
>> realised that it gets stuck in multi_runsingle() function. Also in the
>> real application, multi interface is used, which explains why it does not
>> reproduce.
>>
>> but I still thought it is useful information for you. this strongly
>> indicates that it is just state transitions which got wrong.
>>
>> tomorrow I will try to build standalone app which uses multi interface.
>> hopefully, it will reproduce.
>>
>> Alibek
>>
>>
>> On Wed, Oct 8, 2014 at 6:30 PM, Ryan Beasley <rbeasley_at_vmware.com> wrote:
>>
>>> Alibek wrote:
>>> > Curl 7.24 undergoes withs state transitions:
>>> > GDCurl: STATE: WAITPROXYCONNECT => WAITCONNECT
>>> > GDCurl: STATE: WAITCONNECT => PROTOCONNECT
>>> > while Curl 7.38 goes from WAITPROXYCONNECT to WAITCONNECT and then
>>> remains
>>> > stuck in this state.
>>> > any ideas what could be root cause of this error?
>>> > Perhaps new Curl requires some explicit configuration? or it could be
>>> some
>>> > inner regression?
>>>
>>> I *think* I git-bisected this to the following commit:
>>>
>>> commit a4cece3d47cf092da00cf9910e87bb60b9eff533
>>> Author: Daniel Stenberg <daniel_at_haxx.se>
>>> Date: Sat Jul 19 23:58:58 2014 +0200
>>>
>>> CONNECT: Revert Curl_proxyCONNECT back to 7.29.0 design
>>>
>>> This reverts commit cb3e6dfa3511 and instead fixes the problem
>>> differently.
>>>
>>> The reverted commit addressed a test failure in test 1021 by
>>> simplifying
>>> and generalizing the code flow in a way that damaged the
>>> performance. Now we modify the flow so that Curl_proxyCONNECT() again
>>> does as much as possible in one go, yet still do test 1021 with and
>>> without valgrind. It failed due to mistakes in the multi state
>>> machine.
>>>
>>> Bug: http://curl.haxx.se/bug/view.cgi?id=1397
>>> Reported-by: Paul Saab
>>>
>>> Could you try testing with revision
>>> d242839af8511b389f0edd6519bdae6cd860e8a9 to confirm? Thanks!
>>
>>
>>
>

-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette: http://curl.haxx.se/mail/etiquette.html
Received on 2014-10-15