socketry / async-http

MIT License
298 stars 45 forks source link

Failure when cancelling async-websocket using HTTP/2 #44

Open ioquatix opened 4 years ago

ioquatix commented 4 years ago
17.38s    error: Async::Task [oid=0x5035c] [pid=820043] [2020-02-04 23:11:33 +1300]
               |   NoMethodError: undefined method `available_frame_size' for nil:NilClass
               |   → /home/samuel/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/async-http-0.50.2/lib/async/http/protocol/http2/stream.rb:82 in `write'
               |     /home/samuel/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/async-http-0.50.2/lib/async/http/body/stream.rb:125 in `write'
               |     /home/samuel/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/protocol-websocket-0.7.4/lib/protocol/websocket/frame.rb:203 in `write'
               |     /home/samuel/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/protocol-websocket-0.7.4/lib/protocol/websocket/framer.rb:70 in `write_frame'
               |     /home/samuel/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/protocol-websocket-0.7.4/lib/protocol/websocket/connection.rb:84 in `write_frame'
               |     /home/samuel/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/protocol-websocket-0.7.4/lib/protocol/websocket/connection.rb:129 in `send_close'
               |     /home/samuel/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/protocol-websocket-0.7.4/lib/protocol/websocket/connection.rb:58 in `close'
               |     /home/samuel/Documents/socketry/async-websocket/lib/async/websocket/connection.rb:53 in `close'
               |     ./multi-client.rb:49 in `ensure in block (3 levels) in call'
               |     ./multi-client.rb:49 in `block (3 levels) in call'
               |     /home/samuel/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/async-1.24.2/lib/async/task.rb:258 in `block in make_fiber'
               |   Caused by Async::Stop: Async::Stop
               |   → /home/samuel/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/async-1.24.2/lib/async/task.rb:66 in `yield'
               |     /home/samuel/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/async-1.24.2/lib/async/condition.rb:40 in `wait'
               |     /home/samuel/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/async-1.24.2/lib/async/queue.rb:47 in `dequeue'
               |     /home/samuel/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/async-http-0.50.2/lib/async/http/body/writable.rb:80 in `read'
               |     /home/samuel/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/async-http-0.50.2/lib/async/http/protocol/http2/stream.rb:40 in `read'
               |     /home/samuel/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/async-http-0.50.2/lib/async/http/body/stream.rb:162 in `read_next'
               |     /home/samuel/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/async-http-0.50.2/lib/async/http/body/stream.rb:61 in `read'
               |     /home/samuel/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/protocol-websocket-0.7.4/lib/protocol/websocket/framer.rb:74 in `read_header'
               |     /home/samuel/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/protocol-websocket-0.7.4/lib/protocol/websocket/framer.rb:60 in `read_frame'
               |     /home/samuel/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/protocol-websocket-0.7.4/lib/protocol/websocket/connection.rb:66 in `read_frame'
               |     /home/samuel/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/protocol-websocket-0.7.4/lib/protocol/websocket/connection.rb:194 in `read'
               |     /home/samuel/Documents/socketry/async-websocket/lib/async/websocket/connection.rb:64 in `read'
               |     ./multi-client.rb:45 in `block (3 levels) in call'
               |     /home/samuel/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/async-1.24.2/lib/async/task.rb:258 in `block in make_fiber'