Open DanielHeath opened 1 year ago
Added a test highlighting this bug to my fork
After more digging, I've found that timeout 0.4.0 fixes this issue.
https://github.com/ruby/timeout/pull/30 indicates that you can't rely on catch
, if Kernel.catch
has been called.
In
ruby-3.2.2/lib/ruby/3.2.0/net/http.rb
line 1855, a request is written to the socket; on line 1862 the response is read from the socket.However, if a
Timeout::Error
occurs before the response arrives, the response is not read from the socket.If the client is re-used, this causes the next request to read the response from the interrupted request (since it's queued on the socket and nothing else has read it).