cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: http/2 GET occasional hang

From: Tatsuhiro Tsujikawa <tatsuhiro.t_at_gmail.com>
Date: Sat, 5 Dec 2015 00:43:40 +0900

Hi,

On Fri, Dec 4, 2015 at 4:44 AM, Francisco Moraes <francisco.moraes_at_gmail.com
> wrote:

> I am still seeing this issue but I believe it only occurs when the
> Content-Length header is not present. My attempts to recreate the issue
> when the Content-Length header is present never hit the issue.
>
> Can you attempt to recreate with the server not sending the Content-Length
> in the response? I can usually see a hang when repeating the command in a
> loop. It takes about 1 minute for the connection to be closed even though
> the last DATA frame was properly marked with END_STREAM flag.
>
> Let me know if there is anything I can do to help recreate it.
>
>
​Could you try the attached patch? It fixes this issue for me.

Best regards,
Tatsuhiro Tsujikawa​

> Francisco
>
>
> On 11/30/2015 4:38 PM, Tim Rühsen wrote:
>
>> Not reproducible here (Debian unstable, amd64) with curl 7.45 and
>> libnghttp
>> 1.4.0.
>>
>> Tim
>>
>> Am Montag, 30. November 2015, 12:51:54 schrieb Francisco Moraes:
>>
>>> I've used a large XML file such as the one from here:
>>>
>>>
>>> http://dbis.informatik.uni-freiburg.de/content/projects/GCX/dl/sources/aucti
>>> on.xml
>>>
>>> And used curl like this:
>>>
>>> ./curl --http2 --tcp-nodelay -X GET http://$HOST:$PORT/auction.xml
>>>
>>> When the issue occurs, I see the following output from curl:
>>>
>>> % Total % Received % Xferd Average Speed Time Time Time
>>> Current
>>> Dload Upload Total Spent Left
>>> Speed
>>> 100 2261k 0 2261k 0 0 37594 0 --:--:-- 0:01:01
>>> --:--:-- 0curl: (56) Unexpected EOF
>>>
>>> Note that the transfer is 100% complete but for some reason curl
>>> didn't think it was complete. Does it wait for the connection to be
>>> closed? It has received all the data correctly as I was able to confirm
>>> that via --trace-ascii option, so I don't know why it has not closed the
>>> connection as expected.
>>>
>>> Francisco
>>>
>>> On 11/30/2015 12:09 PM, Daniel Stenberg wrote:
>>>
>>>> On Mon, 30 Nov 2015, Francisco Moraes wrote:
>>>>
>>>>> I am testing my HTTP/2 server and I am getting an occasional hang
>>>>> when transferring a 2M file using http to http/2 upgrade. I've done a
>>>>> packet capture and I see that the data has been sent out completely
>>>>> by the server and the last DATA frame is marked with end stream flag,
>>>>> but curl seems to hang (version 7.44.0).
>>>>>
>>>>> Were there any known issues with that version? I have not been able
>>>>> to recreate the issue with the trace file or verbose flag though.
>>>>>
>>>>> Any thoughts?
>>>>>
>>>> I can't recall any such bugfix, even if we've done a few changes to
>>>> the http2 code since that version. Possibly your nghttp2 version could
>>>> also be involved.
>>>>
>>>> Is there a way for us to try to reproduce your case?
>>>>
>>> -------------------------------------------------------------------
>>> List admin: http://cool.haxx.se/list/listinfo/curl-library
>>> Etiquette: http://curl.haxx.se/mail/etiquette.html
>>>
>>
> -------------------------------------------------------------------
> List admin: http://cool.haxx.se/list/listinfo/curl-library
> Etiquette: http://curl.haxx.se/mail/etiquette.html
>

-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette: http://curl.haxx.se/mail/etiquette.html

Received on 2015-12-04