diff --git a/lib/async/http/protocol/http2/connection.rb b/lib/async/http/protocol/http2/connection.rb index ab56eedf..e384fee6 100644 --- a/lib/async/http/protocol/http2/connection.rb +++ b/lib/async/http/protocol/http2/connection.rb @@ -91,14 +91,8 @@ def read_in_background(parent: Task.current) self.consume_window self.read_frame end - rescue Async::Stop, ::IO::TimeoutError, ::Protocol::HTTP2::GoawayError => error - # Error is raised if a response is actively reading from the - # connection. The connection is silently closed if GOAWAY is - # received outside the request/response cycle. - rescue SocketError, IOError, EOFError, Errno::ECONNRESET, Errno::EPIPE - # Ignore. rescue => error - # Every other error. + # Close with error. ensure # Don't call #close twice. if @reader diff --git a/releases.md b/releases.md index 704f5069..01661411 100644 --- a/releases.md +++ b/releases.md @@ -1,5 +1,9 @@ # Releases +## Unreleased + + - Propagate all errors from background reader to active streams so that they are closed correctly (e.g. errors are not missed). + ## v0.92.2 - Better handling of trailers. If invalid trailers are received, the connection (HTTP/1) or stream (HTTP/2) is reset.