Open st0012 opened 2 years ago
I did a bit debugging with ruby/debug
:
$ ruby -Ilib -rnet/http -rdebug -e "debugger(do: 'trace call') ;; puts Net::HTTP.get(URI.parse('https://raw.githubusercontent.com/ruby/debug/master/.gitignore'))"
And I think it hangs at
DEBUGGER (trace/call) #th:1 #depth:19> IO#wait_readable at /Users/st0012/.rbenv/versions/3.1.0/lib/ruby/3.1.0/net/protocol.rb:219
More traces:
# ...
DEBUGGER (trace/call) #th:1 #depth:20< OpenSSL::SSL::SSLSocket#sysread_nonblock #=> :wait_readable at /Users/st0012/.rbenv/versions/3.1.0/lib/ruby/3.1.0/openssl/buffering.rb:214
DEBUGGER (trace/call) #th:1 #depth:19< OpenSSL::Buffering#read_nonblock #=> :wait_readable at /Users/st0012/.rbenv/versions/3.1.0/lib/ruby/3.1.0/openssl/buffering.rb:214
DEBUGGER (trace/call) #th:1 #depth:19> Module#=== at /Users/st0012/.rbenv/versions/3.1.0/lib/ruby/3.1.0/net/protocol.rb:213
DEBUGGER (trace/call) #th:1 #depth:19< Module#=== #=> false at /Users/st0012/.rbenv/versions/3.1.0/lib/ruby/3.1.0/net/protocol.rb:213
DEBUGGER (trace/call) #th:1 #depth:19> Symbol#=== at /Users/st0012/.rbenv/versions/3.1.0/lib/ruby/3.1.0/net/protocol.rb:218
DEBUGGER (trace/call) #th:1 #depth:19< Symbol#=== #=> true at /Users/st0012/.rbenv/versions/3.1.0/lib/ruby/3.1.0/net/protocol.rb:218
DEBUGGER (trace/call) #th:1 #depth:19> OpenSSL::SSL::SSLSocket#io at /Users/st0012/.rbenv/versions/3.1.0/lib/ruby/3.1.0/net/protocol.rb:219
DEBUGGER (trace/call) #th:1 #depth:19< OpenSSL::SSL::SSLSocket#io #=> #<Socket:fd 11> at /Users/st0012/.rbenv/versions/3.1.0/lib/ruby/3.1.0/net/protocol.rb:219
DEBUGGER (trace/call) #th:1 #depth:19> IO#wait_readable at /Users/st0012/.rbenv/versions/3.1.0/lib/ruby/3.1.0/net/protocol.rb:219
I first noticed this because all
ruby/debug
's tests ran against Ruby head failed with a timeout error (example):And then I executed this command from a clone of this repo to confirm this:
master
prev commit (bfb5a13)