socketry / async-http

MIT License
298 stars 45 forks source link

HTTP/2 Protocol::HPACK::CompressionError: Index 67 too large! #71

Open ioquatix opened 3 years ago

ioquatix commented 3 years ago
Failures:

  1) Async::HTTP::Client Async::HTTP::Protocol::HTTPS can request remote resource
     Failure/Error: self.receive_initial_headers(super, frame.end_stream?)

     Protocol::HPACK::CompressionError:
       Index 67 too large!
     # /home/samuel/.gem/ruby/2.7.1/gems/protocol-hpack-1.4.2/lib/protocol/hpack/context.rb:156:in `dereference'
     # /home/samuel/.gem/ruby/2.7.1/gems/protocol-hpack-1.4.2/lib/protocol/hpack/context.rb:182:in `decode'
     # /home/samuel/.gem/ruby/2.7.1/gems/protocol-hpack-1.4.2/lib/protocol/hpack/decompressor.rb:159:in `decode'
     # /home/samuel/.gem/ruby/2.7.1/gems/protocol-http2-0.14.2/lib/protocol/http2/connection.rb:129:in `decode_headers'
     # /home/samuel/.gem/ruby/2.7.1/gems/protocol-http2-0.14.2/lib/protocol/http2/stream.rb:292:in `process_headers'
     # ./lib/async/http/protocol/http2/stream.rb:76:in `process_headers'
     # /home/samuel/.gem/ruby/2.7.1/gems/protocol-http2-0.14.2/lib/protocol/http2/stream.rb:319:in `receive_headers'
     # /home/samuel/.gem/ruby/2.7.1/gems/protocol-http2-0.14.2/lib/protocol/http2/connection.rb:375:in `receive_headers'
     # /home/samuel/.gem/ruby/2.7.1/gems/protocol-http2-0.14.2/lib/protocol/http2/headers_frame.rb:82:in `apply'
     # /home/samuel/.gem/ruby/2.7.1/gems/protocol-http2-0.14.2/lib/protocol/http2/connection.rb:168:in `read_frame'
     # ./lib/async/http/protocol/http2/connection.rb:106:in `block in read_in_background'
     # /home/samuel/.gem/ruby/2.7.1/gems/async-1.29.0/lib/async/task.rb:263:in `block in make_fiber'
ioquatix commented 3 years ago

I saw this again:

Async::HTTP::Client
  Async::HTTP::Protocol::HTTP1
    client can get resource
  non-existant host
    should fail to connect
  Async::HTTP::Protocol::HTTPS
    should specify hostname
  4.0s    error: Async::HTTP::Protocol::HTTP2::Response::Stream [oid=0x2198] [ec=0x21ac] [pid=173419] [2021-05-11 19:52:41 +1200]
               |   Protocol::HTTP2::HeaderError: Unable to process headers!
               |   → lib/async/http/protocol/http2/stream.rb:82 in `process_headers'
               |     /home/samuel/.gem/ruby/3.1.0/gems/protocol-http2-0.14.2/lib/protocol/http2/stream.rb:319 in `receive_headers'
               |     /home/samuel/.gem/ruby/3.1.0/gems/protocol-http2-0.14.2/lib/protocol/http2/connection.rb:375 in `receive_headers'
               |     /home/samuel/.gem/ruby/3.1.0/gems/protocol-http2-0.14.2/lib/protocol/http2/headers_frame.rb:82 in `apply'
               |     /home/samuel/.gem/ruby/3.1.0/gems/protocol-http2-0.14.2/lib/protocol/http2/connection.rb:168 in `read_frame'
               |     lib/async/http/protocol/http2/connection.rb:106 in `block in read_in_background'
               |     /home/samuel/Documents/socketry/async/lib/async/task.rb:283 in `block in schedule'
 4.21s    error: Async::Task [oid=0x21c0] [ec=0x21ac] [pid=173419] [2021-05-11 19:52:41 +1200]
               |   Protocol::HPACK::CompressionError: Index 67 too large!
               |   → /home/samuel/.gem/ruby/3.1.0/gems/protocol-hpack-1.4.2/lib/protocol/hpack/context.rb:156 in `dereference'
               |     /home/samuel/.gem/ruby/3.1.0/gems/protocol-hpack-1.4.2/lib/protocol/hpack/context.rb:182 in `decode'
               |     /home/samuel/.gem/ruby/3.1.0/gems/protocol-hpack-1.4.2/lib/protocol/hpack/decompressor.rb:159 in `decode'
               |     /home/samuel/.gem/ruby/3.1.0/gems/protocol-http2-0.14.2/lib/protocol/http2/connection.rb:129 in `decode_headers'
               |     /home/samuel/.gem/ruby/3.1.0/gems/protocol-http2-0.14.2/lib/protocol/http2/stream.rb:292 in `process_headers'
               |     lib/async/http/protocol/http2/stream.rb:76 in `process_headers'
               |     /home/samuel/.gem/ruby/3.1.0/gems/protocol-http2-0.14.2/lib/protocol/http2/stream.rb:319 in `receive_headers'
               |     /home/samuel/.gem/ruby/3.1.0/gems/protocol-http2-0.14.2/lib/protocol/http2/connection.rb:375 in `receive_headers'
               |     /home/samuel/.gem/ruby/3.1.0/gems/protocol-http2-0.14.2/lib/protocol/http2/headers_frame.rb:82 in `apply'
               |     /home/samuel/.gem/ruby/3.1.0/gems/protocol-http2-0.14.2/lib/protocol/http2/connection.rb:168 in `read_frame'
               |     lib/async/http/protocol/http2/connection.rb:106 in `block in read_in_background'
               |     /home/samuel/Documents/socketry/async/lib/async/task.rb:283 in `block in schedule'
    can request remote resource (FAILED - 1)
 5.37s    error: Async::HTTP::Protocol::HTTP2::Response::Stream [oid=0x2210] [ec=0x2224] [pid=173419] [2021-05-11 19:52:42 +1200]
               |   Protocol::HTTP2::HeaderError: Unable to process headers!
               |   → lib/async/http/protocol/http2/stream.rb:82 in `process_headers'
               |     /home/samuel/.gem/ruby/3.1.0/gems/protocol-http2-0.14.2/lib/protocol/http2/stream.rb:319 in `receive_headers'
               |     /home/samuel/.gem/ruby/3.1.0/gems/protocol-http2-0.14.2/lib/protocol/http2/connection.rb:375 in `receive_headers'
               |     /home/samuel/.gem/ruby/3.1.0/gems/protocol-http2-0.14.2/lib/protocol/http2/headers_frame.rb:82 in `apply'
               |     /home/samuel/.gem/ruby/3.1.0/gems/protocol-http2-0.14.2/lib/protocol/http2/connection.rb:168 in `read_frame'
               |     lib/async/http/protocol/http2/connection.rb:106 in `block in read_in_background'
               |     /home/samuel/Documents/socketry/async/lib/async/task.rb:283 in `block in schedule'
    can request remote resource with compression