cURL / Mailing Lists / curl-users / Single Mail

curl-users

spin when http/2 connection is closed prematurely

From: Brad Fitzpatrick <bradfitz_at_golang.org>
Date: Fri, 12 Sep 2014 15:07:29 -0400

I'm using curl with nghttp2 for integration tests with development of Go's
http2 support. I'm building curl like:
https://github.com/bradfitz/http2/blob/master/Dockerfile (curl curl-7.38.0)

There seems to be a bug with curl's use of nghttp2.

If the server closes the connection prematurely (after NPN/ALPN negotiation
but before sending any http/2 frames), curl --http2 -v spins forever with:

* nghttp2_session_mem_recv() returns 0
* http2_recv: 16384 bytes buffer
* nread=0
* nghttp2_session_mem_recv() returns 0
* http2_recv: 16384 bytes buffer
* nread=0
* nghttp2_session_mem_recv() returns 0
* http2_recv: 16384 bytes buffer
* nread=0
* nghttp2_session_mem_recv() returns 0
* http2_recv: 16384 bytes buffer
* nread=0
* nghttp2_session_mem_recv() returns 0
* http2_recv: 16384 bytes buffer
* nread=0
* nghttp2_session_mem_recv() returns 0
* http2_recv: 16384 bytes buffer
* nread=0
* nghttp2_session_mem_recv() returns 0
* http2_recv: 16384 bytes buffer
* nread=0
* nghttp2_session_mem_recv() returns 0
* http2_recv: 16384 bytes buffer
* nread=0
* nghttp2_session_mem_recv() returns 0
* http2_recv: 16384 bytes buffer
* nread=0
* nghttp2_session_mem_recv() returns 0
* http2_recv: 16384 bytes buffer
* nread=0
* nghttp2_session_mem_recv() returns 0
* http2_recv: 16384 bytes buffer
* nread=0
* nghttp2_session_mem_recv() returns 0
* http2_recv: 16384 bytes buffer
* nread=0

etc

I'll work around this with a wrapper, but seems like something curl should
fix.

Let me know if you'd prefer that I file a bug.

-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-users
FAQ: http://curl.haxx.se/docs/faq.html
Etiquette: http://curl.haxx.se/mail/etiquette.html
Received on 2014-09-12