On Friday, June 09 2023, Ian Jackson wrote:

> Steps to reproduce:
>
>   curl -I https://git.dgit.debian.org/dgit/info/refs
>
> Expected output (obtained on, eg, buster):
>
>   HTTP/2 200 
>   expires: Fri, 01 Jan 1980 00:00:00 GMT
>   pragma: no-cache
>   cache-control: no-cache, max-age=0, must-revalidate
>   x-content-type-options: nosniff
>   x-frame-options: sameorigin
>   referrer-policy: no-referrer
>   x-xss-protection: 1
>   permissions-policy: interest-cohort=()
>   strict-transport-security: max-age=15552000
>   content-length: 40562
>   vary: Accept-Encoding
>   x-clacks-overhead: GNU Terry Pratchett
>   content-type: text/plain
>   date: Fri, 09 Jun 2023 14:11:55 GMT
>   server: Apache
>
> Actual output:
>
>   curl: (92) HTTP/2 stream 1 was not closed cleanly: PROTOCOL_ERROR (err 1)
>
> This seems to have stopped working very recently.

I was able to reproduce the bug building from the upstream repo, ran a
bisect and found that the following commit seems to have fixed the
issue:

744dcf22fac6cf12a9112df106b61864982afef9 is the first fixed commit
commit 744dcf22fac6cf12a9112df106b61864982afef9
Author: Stefan Eissing <ste...@eissing.org>
Date:   Thu Mar 30 12:13:49 2023 +0200

    http2: flow control and buffer improvements
    
    - use bufq for send/receive of network data
    - usd bufq for send/receive of stream data
    - use HTTP/2 flow control with no-auto updates to control the
      amount of data we are buffering for a stream
      HTTP/2 stream window set to 128K after local tests, defined
      code constant for now
    - elminiating PAUSEing nghttp2 processing when receiving data
      since a stream can now take in all DATA nghttp2 forwards
    
    Improved scorecard and adjuste http2 stream window sizes
    - scorecard improved output formatting and options default
    - scorecard now also benchmarks small requests / second
    
    Closes #10771

There are a few problems, though:

- The commit is long and seems to introduce unrelated changes.  In fact,
  it's just an "overhaul" commit, so the fix apparently happened "by
  chance".

- According to
  https://github.com/curl/curl/pull/10771#issuecomment-1491200728, the
  commit might have introduce other problems.

-- 
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF  31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible
https://sergiodj.net/

Reply via email to