Description
I did this
- enable HTTP/2.0 multiplexing
- send GET request that is answered after 5s
- also send POST request, send data infinitely in read_callback()
- if GET request completes, re-add GET handle to multi handle immediately
- read_callback() is maybe called one more time after re-adding the GET handle, but never again after that
The problem appears when adding the GET handle.
When adding the GET handle again is delayed, the read_callback() is called until shortly after the curl_multi_add_handle().
I expected the following
read_callback() is still called continuously, data can be send continuously.
With HTTP/2.0 multiplexing disabled, everything works as expected.
curl/libcurl version
build from source a3f3853
curl 7.60.0-DEV (x86_64-pc-linux-gnu) libcurl/7.60.0-DEV OpenSSL/1.0.2g zlib/1.2.8 nghttp2/1.31.0
Release-Date: [unreleased]
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS Debug TrackMemory IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy
Also observed with curl 7.56 on ARM
operating system
Ubuntu 16.04
Servlet source and pcap on request.