net-http2 icon indicating copy to clipboard operation
net-http2 copied to clipboard

streams timing out when connection is closed

Open akostadinov opened this issue 2 years ago • 1 comments

Hello, I'm doing 5 threads requesting data on a HTTP/2 connection.

The server often closes the connection and I have a handler to print when this happens. So I see in console this:

#<SocketError: Socket was remotely closed>

But then the outstanding requests are not interrupted. Rather they seem to stay until timeout occurs. So after awhile I see this in console:

#<NoMethodError: undefined method `body' for nil:NilClass>
#<NoMethodError: undefined method `body' for nil:NilClass>
#<NoMethodError: undefined method `body' for nil:NilClass>

i.e. from the 5 threads, 3 were stuck in the request. Nothing raised. Just response was nil instead of an actual response.

So the issues are two:

  • requests are not interrupted but are let to time out
  • sync requests get a nil response instead of an exception or a proper response object connection.call(:get, ...)

akostadinov avatar Nov 20 '23 20:11 akostadinov

https://github.com/ostinelli/net-http2/pull/47

Matchlighter avatar Dec 08 '23 20:12 Matchlighter