Closed jasl closed 3 years ago
Update:
nio4r 2.5.5
breaks async-http
jasl@localhost:~/Workspaces/Ruby/async-http on master$ ruby -v
ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin19]
jasl@localhost:~/Workspaces/Ruby/async-http on master$ bundle exec rspec
...
Failures:
1) Async::HTTP::Client can fetch remote resource
Got 0 failures and 2 other errors:
1.1) Failure/Error: endpoint.connect(&block)
Async::Stop:
Async::Stop
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/task.rb:66:in `yield'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/wrapper.rb:233:in `wait_for'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/wrapper.rb:139:in `wait_writable'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/generic.rb:222:in `async_send'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/socket.rb:52:in `connect'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/socket.rb:135:in `connect'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/host_endpoint.rb:59:in `block in connect'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/host_endpoint.rb:57:in `connect'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/ssl_endpoint.rb:92:in `connect'
# ./lib/async/http/endpoint.rb:201:in `connect'
# ./lib/async/http/client.rb:157:in `block in make_pool'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:201:in `create_resource'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:230:in `block in available_resource'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/semaphore.rb:80:in `acquire'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:211:in `available_resource'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:184:in `wait_for_resource'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:79:in `acquire'
# ./lib/async/http/client.rb:104:in `call'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/protocol-http-0.21.0/lib/protocol/http/methods.rb:55:in `block (2 levels) in <class:Methods>'
# ./spec/async/http/client/google_spec.rb:31:in `block (2 levels) in <top (required)>'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:92:in `block (3 levels) in <module:RSpec>'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:61:in `block (2 levels) in run_in_reactor'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/task.rb:265:in `block in make_fiber'
1.2) Failure/Error: raise TimeoutError, "run time exceeded duration #{duration}s:\r\n#{buffer.string}"
Async::TimeoutError:
run time exceeded duration 5s:
#<Async::Reactor:0x3fc3bdc0fd1c 2 children (running)>
#<Async::Task:0x3fc3bdc15898 timer task duration=5 (running)>
#<Async::Task:0x3fc3bdc29a00 RSpec::ExampleGroups::AsyncHTTPClient (running)>
#<Async::Task:0x3fc3bdc3939c connecting to #<Addrinfo: 75.126.115.192:443 TCP (www.google.com)> (running)>
#<Async::Task:0x3fc3b5c1b840 transient (running)>
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:51:in `block in run_in_reactor'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/task.rb:265:in `block in make_fiber'
2) Async::HTTP::Protocol::HTTP10 behaves like Async::HTTP::Proxy proxied client can get insecure website
Got 0 failures and 2 other errors:
Shared Example Group: Async::HTTP::Proxy called from ./spec/async/http/proxy_spec.rb:254
2.1) Failure/Error: @stream.read_until(CRLF) or raise EOFError, "Could not read line!"
Async::Stop:
Async::Stop
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/task.rb:66:in `yield'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/wrapper.rb:233:in `wait_for'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/wrapper.rb:124:in `wait_readable'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/generic.rb:220:in `async_send'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/generic.rb:69:in `block in wrap_blocking_method'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/stream.rb:261:in `fill_read_buffer'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/stream.rb:131:in `read_until'
# ./lib/async/http/protocol/http1/connection.rb:56:in `read_line'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/protocol-http1-0.13.2/lib/protocol/http1/connection.rb:201:in `read_response'
# ./lib/async/http/protocol/http1/response.rb:31:in `read'
# ./lib/async/http/protocol/http1/client.rb:75:in `call'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/protocol-http-0.21.0/lib/protocol/http/request.rb:53:in `call'
# ./lib/async/http/client.rb:143:in `make_response'
# ./lib/async/http/client.rb:106:in `call'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/protocol-http-0.21.0/lib/protocol/http/methods.rb:55:in `block (2 levels) in <class:Methods>'
# ./spec/async/http/proxy_spec.rb:190:in `block (3 levels) in <top (required)>'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:92:in `block (3 levels) in <module:RSpec>'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:61:in `block (2 levels) in run_in_reactor'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/task.rb:265:in `block in make_fiber'
2.2) Failure/Error: raise TimeoutError, "run time exceeded duration #{duration}s:\r\n#{buffer.string}"
Async::TimeoutError:
run time exceeded duration 10s:
#<Async::Reactor:0x3fc3bdc15eb0 2 children (running)>
#<Async::Task:0x3fc3b5c13b54 timer task duration=10 (running)>
#<Async::Task:0x3fc3ce073880 RSpec::ExampleGroups::AsyncHTTPProtocolHTTP10_2::BehavesLikeAsyncHTTPProxy::ProxiedClient_2 (running)>
#<Async::Task:0x3fc3ddc1c45c connected to #<Addrinfo: 127.0.0.1:9294 TCP> [fd=15] (running)>
#<Async::Task:0x3fc3d5c1329c (complete)>
#<Async::Task:0x3fc3e60188dc accepting connections #<Addrinfo: 127.0.0.1:9294 TCP> [fd=14] (running)>
#<Async::Task:0x3fc3f60ada08 connecting to #<Addrinfo: 75.126.115.192:80 TCP (www.google.com)> (running)>
#<Async::Task:0x3fc3f6090cf0 transient (running)>
#<Async::Task:0x3fc3f6099a80 transient (running)>
#<Async::Task:0x3fc3f60a054c Tunnelling body. (running)>
#<Async::Task:0x3fc3ce08fdc8 transient Async::HTTP::Body::Pipe writer. (running)>
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:51:in `block in run_in_reactor'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/task.rb:265:in `block in make_fiber'
3) Async::HTTP::Protocol::HTTP10 behaves like Async::HTTP::Proxy proxied client can get secure website
Got 0 failures and 2 other errors:
Shared Example Group: Async::HTTP::Proxy called from ./spec/async/http/proxy_spec.rb:254
3.1) Failure/Error: endpoint.connect(&block)
Async::Stop:
Async::Stop
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/task.rb:66:in `yield'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/wrapper.rb:233:in `wait_for'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/wrapper.rb:124:in `wait_readable'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/generic.rb:220:in `async_send'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/generic.rb:62:in `block in wrap_blocking_method'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/ssl_socket.rb:47:in `connect'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/ssl_endpoint.rb:92:in `connect'
# ./lib/async/http/endpoint.rb:201:in `connect'
# ./lib/async/http/client.rb:157:in `block in make_pool'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:201:in `create_resource'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:230:in `block in available_resource'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/semaphore.rb:80:in `acquire'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:211:in `available_resource'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:184:in `wait_for_resource'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:79:in `acquire'
# ./lib/async/http/client.rb:104:in `call'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/protocol-http-0.21.0/lib/protocol/http/methods.rb:55:in `block (2 levels) in <class:Methods>'
# ./spec/async/http/proxy_spec.rb:207:in `block (3 levels) in <top (required)>'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:92:in `block (3 levels) in <module:RSpec>'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:61:in `block (2 levels) in run_in_reactor'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/task.rb:265:in `block in make_fiber'
3.2) Failure/Error: raise LeakError, @monitors.values
Async::Debug::LeakError:
Trying to close selector with active monitors: [#<Async::Debug::Monitor io=#<OpenSSL::SSL::SSLSocket:0x00007f879c11ef60 @context=#<OpenSSL::SSL::SSLContext:0x00007f87eb826bd8 @max_proto_version=nil, @min_proto_version=769, @verify_mode=1, @verify_hostname=true, @cert_store=#<OpenSSL::X509::Store:0x00007f875d1b26a0 @verify_callback=nil, @error=nil, @error_string=nil, @chain=nil, @time=nil>, @alpn_protocols=["h2", "http/1.1", "http/1.0"]>, @io=#<Socket:fd 19>, @eof=false, @rbuffer="", @sync=true, @sync_close=true, @hostname="www.google.com"> interests=nil readiness=nil>]! This may cause your socket or file descriptor to leak.
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/debug/selector.rb:78:in `close'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/reactor.rb:315:in `close'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:95:in `ensure in block (2 levels) in <module:RSpec>'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:95:in `block (2 levels) in <module:RSpec>'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/rspec-files-1.1.0/lib/rspec/files/leaks.rb:47:in `block (2 levels) in <module:Files>'
# ------------------
# --- Caused by: ---
# Async::TimeoutError:
# run time exceeded duration 10s:
# #<Async::Reactor:0x3fc3bdc0e020 2 children (running)>
# #<Async::Task:0x3fc3b5c0e564 timer task duration=10 (running)>
# #<Async::Task:0x3fc3ce04bd08 RSpec::ExampleGroups::AsyncHTTPProtocolHTTP10_2::BehavesLikeAsyncHTTPProxy::ProxiedClient_2 (running)>
# #<Async::Task:0x3fc3ce073560 connected to #<Addrinfo: 127.0.0.1:9294 TCP> [fd=15] (running)>
# #<Async::Task:0x3fc3f6088a8c (complete)>
# #<Async::Task:0x3fc3d5c1f808 accepting connections #<Addrinfo: 127.0.0.1:9294 TCP> [fd=14] (running)>
# #<Async::Task:0x3fc3f60a5498 connecting to #<Addrinfo: 75.126.115.192:443 TCP (www.google.com)> (running)>
# #<Async::Task:0x3fc3f5c1a1a8 transient (running)>
# #<Async::Task:0x3fc3f60959e4 transient (running)>
# #<Async::Task:0x3fc3f60a158c Tunnelling body. (running)>
# #<Async::Task:0x3fc3ce08a4a4 transient Async::HTTP::Body::Pipe writer. (running)>
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:51:in `block in run_in_reactor'
4) Async::HTTP::Protocol::HTTP10 behaves like Async::HTTP::Proxy proxied client authorization header required request includes headers succeeds
Got 0 failures and 2 other errors:
Shared Example Group: Async::HTTP::Proxy called from ./spec/async/http/proxy_spec.rb:254
4.1) Failure/Error: endpoint.connect(&block)
Async::Stop:
Async::Stop
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/task.rb:66:in `yield'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/wrapper.rb:233:in `wait_for'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/wrapper.rb:124:in `wait_readable'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/generic.rb:220:in `async_send'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/generic.rb:62:in `block in wrap_blocking_method'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/ssl_socket.rb:47:in `connect'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/ssl_endpoint.rb:92:in `connect'
# ./lib/async/http/endpoint.rb:201:in `connect'
# ./lib/async/http/client.rb:157:in `block in make_pool'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:201:in `create_resource'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:230:in `block in available_resource'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/semaphore.rb:80:in `acquire'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:211:in `available_resource'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:184:in `wait_for_resource'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:79:in `acquire'
# ./lib/async/http/client.rb:104:in `call'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/protocol-http-0.21.0/lib/protocol/http/methods.rb:55:in `block (2 levels) in <class:Methods>'
# ./spec/async/http/proxy_spec.rb:227:in `block (5 levels) in <top (required)>'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:92:in `block (3 levels) in <module:RSpec>'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:61:in `block (2 levels) in run_in_reactor'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/task.rb:265:in `block in make_fiber'
4.2) Failure/Error: raise LeakError, @monitors.values
Async::Debug::LeakError:
Trying to close selector with active monitors: [#<Async::Debug::Monitor io=#<OpenSSL::SSL::SSLSocket:0x00007f879c11c0a8 @context=#<OpenSSL::SSL::SSLContext:0x00007f87eb825198 @max_proto_version=nil, @min_proto_version=769, @verify_mode=1, @verify_hostname=true, @cert_store=#<OpenSSL::X509::Store:0x00007f875d1b26a0 @verify_callback=nil, @error=nil, @error_string=nil, @chain=nil, @time=nil>, @alpn_protocols=["h2", "http/1.1", "http/1.0"]>, @io=#<Socket:fd 19>, @eof=false, @rbuffer="", @sync=true, @sync_close=true, @hostname="www.google.com"> interests=nil readiness=nil>]! This may cause your socket or file descriptor to leak.
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/debug/selector.rb:78:in `close'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/reactor.rb:315:in `close'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:95:in `ensure in block (2 levels) in <module:RSpec>'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:95:in `block (2 levels) in <module:RSpec>'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/rspec-files-1.1.0/lib/rspec/files/leaks.rb:47:in `block (2 levels) in <module:Files>'
# ------------------
# --- Caused by: ---
# Async::TimeoutError:
# run time exceeded duration 10s:
# #<Async::Reactor:0x3fc3bdc0e020 2 children (running)>
# #<Async::Task:0x3fc3b5c0e564 timer task duration=10 (running)>
# #<Async::Task:0x3fc3ce04bd08 RSpec::ExampleGroups::AsyncHTTPProtocolHTTP10_2::BehavesLikeAsyncHTTPProxy::ProxiedClient_2::AuthorizationHeaderRequired::RequestIncludesHeaders (running)>
# #<Async::Task:0x3fc3ce073560 connected to #<Addrinfo: 127.0.0.1:9294 TCP> [fd=15] (running)>
# #<Async::Task:0x3fc3f6088c1c (complete)>
# #<Async::Task:0x3fc3d5c1b8c0 accepting connections #<Addrinfo: 127.0.0.1:9294 TCP> [fd=14] (running)>
# #<Async::Task:0x3fc3f60a50ec connecting to #<Addrinfo: 75.126.115.192:443 TCP (www.google.com)> (running)>
# #<Async::Task:0x3fc3f6091e0c transient (running)>
# #<Async::Task:0x3fc3f6095660 transient (running)>
# #<Async::Task:0x3fc3f60a0bdc Tunnelling body. (running)>
# #<Async::Task:0x3fc3ae83415c transient Async::HTTP::Body::Pipe writer. (running)>
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:51:in `block in run_in_reactor'
5) Async::HTTP::Protocol::HTTP11 behaves like Async::HTTP::Proxy proxied client can get insecure website
Got 0 failures and 2 other errors:
Shared Example Group: Async::HTTP::Proxy called from ./spec/async/http/proxy_spec.rb:258
5.1) Failure/Error: @stream.read_until(CRLF) or raise EOFError, "Could not read line!"
Async::Stop:
Async::Stop
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/task.rb:66:in `yield'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/wrapper.rb:233:in `wait_for'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/wrapper.rb:124:in `wait_readable'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/generic.rb:220:in `async_send'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/generic.rb:69:in `block in wrap_blocking_method'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/stream.rb:261:in `fill_read_buffer'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/stream.rb:131:in `read_until'
# ./lib/async/http/protocol/http1/connection.rb:56:in `read_line'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/protocol-http1-0.13.2/lib/protocol/http1/connection.rb:201:in `read_response'
# ./lib/async/http/protocol/http1/response.rb:31:in `read'
# ./lib/async/http/protocol/http1/client.rb:75:in `call'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/protocol-http-0.21.0/lib/protocol/http/request.rb:53:in `call'
# ./lib/async/http/client.rb:143:in `make_response'
# ./lib/async/http/client.rb:106:in `call'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/protocol-http-0.21.0/lib/protocol/http/methods.rb:55:in `block (2 levels) in <class:Methods>'
# ./spec/async/http/proxy_spec.rb:190:in `block (3 levels) in <top (required)>'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:92:in `block (3 levels) in <module:RSpec>'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:61:in `block (2 levels) in run_in_reactor'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/task.rb:265:in `block in make_fiber'
5.2) Failure/Error: raise TimeoutError, "run time exceeded duration #{duration}s:\r\n#{buffer.string}"
Async::TimeoutError:
run time exceeded duration 10s:
#<Async::Reactor:0x3fc3bdc15be0 2 children (running)>
#<Async::Task:0x3fc3b5c13b54 timer task duration=10 (running)>
#<Async::Task:0x3fc3ce07719c RSpec::ExampleGroups::AsyncHTTPProtocolHTTP11_2::BehavesLikeAsyncHTTPProxy::ProxiedClient_2 (running)>
#<Async::Task:0x3fc3f60759f0 connected to #<Addrinfo: 127.0.0.1:9294 TCP> [fd=15] (running)>
#<Async::Task:0x3fc3d5c12040 (complete)>
#<Async::Task:0x3fc3f5c17c14 accepting connections #<Addrinfo: 127.0.0.1:9294 TCP> [fd=14] (running)>
#<Async::Task:0x3fc3f60b5514 connecting to #<Addrinfo: 75.126.115.192:80 TCP (www.google.com)> (running)>
#<Async::Task:0x3fc3f6099bd4 transient (running)>
#<Async::Task:0x3fc3f609dc84 transient (running)>
#<Async::Task:0x3fc3f60ada1c Tunnelling body. (running)>
#<Async::Task:0x3fc3ce092e24 transient Async::HTTP::Body::Pipe writer. (running)>
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:51:in `block in run_in_reactor'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/task.rb:265:in `block in make_fiber'
6) Async::HTTP::Protocol::HTTP11 behaves like Async::HTTP::Proxy proxied client can get secure website
Got 0 failures and 2 other errors:
Shared Example Group: Async::HTTP::Proxy called from ./spec/async/http/proxy_spec.rb:258
6.1) Failure/Error: endpoint.connect(&block)
Async::Stop:
Async::Stop
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/task.rb:66:in `yield'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/wrapper.rb:233:in `wait_for'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/wrapper.rb:124:in `wait_readable'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/generic.rb:220:in `async_send'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/generic.rb:62:in `block in wrap_blocking_method'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/ssl_socket.rb:47:in `connect'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/ssl_endpoint.rb:92:in `connect'
# ./lib/async/http/endpoint.rb:201:in `connect'
# ./lib/async/http/client.rb:157:in `block in make_pool'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:201:in `create_resource'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:230:in `block in available_resource'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/semaphore.rb:80:in `acquire'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:211:in `available_resource'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:184:in `wait_for_resource'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:79:in `acquire'
# ./lib/async/http/client.rb:104:in `call'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/protocol-http-0.21.0/lib/protocol/http/methods.rb:55:in `block (2 levels) in <class:Methods>'
# ./spec/async/http/proxy_spec.rb:207:in `block (3 levels) in <top (required)>'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:92:in `block (3 levels) in <module:RSpec>'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:61:in `block (2 levels) in run_in_reactor'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/task.rb:265:in `block in make_fiber'
6.2) Failure/Error: raise LeakError, @monitors.values
Async::Debug::LeakError:
Trying to close selector with active monitors: [#<Async::Debug::Monitor io=#<OpenSSL::SSL::SSLSocket:0x00007f879c125b80 @context=#<OpenSSL::SSL::SSLContext:0x00007f87eb82c650 @max_proto_version=nil, @min_proto_version=769, @verify_mode=1, @verify_hostname=true, @cert_store=#<OpenSSL::X509::Store:0x00007f875d1b26a0 @verify_callback=nil, @error=nil, @error_string=nil, @chain=nil, @time=nil>, @alpn_protocols=["h2", "http/1.1", "http/1.0"]>, @io=#<Socket:fd 19>, @eof=false, @rbuffer="", @sync=true, @sync_close=true, @hostname="www.google.com"> interests=nil readiness=nil>]! This may cause your socket or file descriptor to leak.
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/debug/selector.rb:78:in `close'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/reactor.rb:315:in `close'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:95:in `ensure in block (2 levels) in <module:RSpec>'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:95:in `block (2 levels) in <module:RSpec>'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/rspec-files-1.1.0/lib/rspec/files/leaks.rb:47:in `block (2 levels) in <module:Files>'
# ------------------
# --- Caused by: ---
# Async::TimeoutError:
# run time exceeded duration 10s:
# #<Async::Reactor:0x3fc3bdc15eb0 2 children (running)>
# #<Async::Task:0x3fc3b5c0e1a4 timer task duration=10 (running)>
# #<Async::Task:0x3fc3ce06e13c RSpec::ExampleGroups::AsyncHTTPProtocolHTTP11_2::BehavesLikeAsyncHTTPProxy::ProxiedClient_2 (running)>
# #<Async::Task:0x3fc3ce076ff8 connected to #<Addrinfo: 127.0.0.1:9294 TCP> [fd=15] (running)>
# #<Async::Task:0x3fc3f608cc04 (complete)>
# #<Async::Task:0x3fc3e6011028 accepting connections #<Addrinfo: 127.0.0.1:9294 TCP> [fd=14] (running)>
# #<Async::Task:0x3fc3f60b1298 connecting to #<Addrinfo: 75.126.115.192:443 TCP (www.google.com)> (running)>
# #<Async::Task:0x3fc3f6095bc4 transient (running)>
# #<Async::Task:0x3fc3f609933c transient (running)>
# #<Async::Task:0x3fc3f60a54e8 Tunnelling body. (running)>
# #<Async::Task:0x3fc3ce0936e4 transient Async::HTTP::Body::Pipe writer. (running)>
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:51:in `block in run_in_reactor'
7) Async::HTTP::Protocol::HTTP11 behaves like Async::HTTP::Proxy proxied client authorization header required request includes headers succeeds
Got 0 failures and 2 other errors:
Shared Example Group: Async::HTTP::Proxy called from ./spec/async/http/proxy_spec.rb:258
7.1) Failure/Error: endpoint.connect(&block)
Async::Stop:
Async::Stop
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/task.rb:66:in `yield'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/wrapper.rb:233:in `wait_for'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/wrapper.rb:124:in `wait_readable'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/generic.rb:220:in `async_send'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/generic.rb:62:in `block in wrap_blocking_method'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/ssl_socket.rb:47:in `connect'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/ssl_endpoint.rb:92:in `connect'
# ./lib/async/http/endpoint.rb:201:in `connect'
# ./lib/async/http/client.rb:157:in `block in make_pool'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:201:in `create_resource'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:230:in `block in available_resource'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/semaphore.rb:80:in `acquire'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:211:in `available_resource'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:184:in `wait_for_resource'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:79:in `acquire'
# ./lib/async/http/client.rb:104:in `call'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/protocol-http-0.21.0/lib/protocol/http/methods.rb:55:in `block (2 levels) in <class:Methods>'
# ./spec/async/http/proxy_spec.rb:227:in `block (5 levels) in <top (required)>'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:92:in `block (3 levels) in <module:RSpec>'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:61:in `block (2 levels) in run_in_reactor'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/task.rb:265:in `block in make_fiber'
7.2) Failure/Error: raise LeakError, @monitors.values
Async::Debug::LeakError:
Trying to close selector with active monitors: [#<Async::Debug::Monitor io=#<OpenSSL::SSL::SSLSocket:0x00007f879c125478 @context=#<OpenSSL::SSL::SSLContext:0x00007f87eb836e20 @max_proto_version=nil, @min_proto_version=769, @verify_mode=1, @verify_hostname=true, @cert_store=#<OpenSSL::X509::Store:0x00007f875d1b26a0 @verify_callback=nil, @error=nil, @error_string=nil, @chain=nil, @time=nil>, @alpn_protocols=["h2", "http/1.1", "http/1.0"]>, @io=#<Socket:fd 19>, @eof=false, @rbuffer="", @sync=true, @sync_close=true, @hostname="www.google.com"> interests=nil readiness=nil>]! This may cause your socket or file descriptor to leak.
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/debug/selector.rb:78:in `close'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/reactor.rb:315:in `close'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:95:in `ensure in block (2 levels) in <module:RSpec>'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:95:in `block (2 levels) in <module:RSpec>'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/rspec-files-1.1.0/lib/rspec/files/leaks.rb:47:in `block (2 levels) in <module:Files>'
# ------------------
# --- Caused by: ---
# Async::TimeoutError:
# run time exceeded duration 10s:
# #<Async::Reactor:0x3fc3bdc15eb0 2 children (running)>
# #<Async::Task:0x3fc3b5c0e1a4 timer task duration=10 (running)>
# #<Async::Task:0x3fc3ce06e13c RSpec::ExampleGroups::AsyncHTTPProtocolHTTP11_2::BehavesLikeAsyncHTTPProxy::ProxiedClient_2::AuthorizationHeaderRequired::RequestIncludesHeaders (running)>
# #<Async::Task:0x3fc3ce076ff8 connected to #<Addrinfo: 127.0.0.1:9294 TCP> [fd=15] (running)>
# #<Async::Task:0x3fc3f608cc40 (complete)>
# #<Async::Task:0x3fc3e6011564 accepting connections #<Addrinfo: 127.0.0.1:9294 TCP> [fd=14] (running)>
# #<Async::Task:0x3fc3f60b5bcc connecting to #<Addrinfo: 75.126.115.192:443 TCP (www.google.com)> (running)>
# #<Async::Task:0x3fc3f6095854 transient (running)>
# #<Async::Task:0x3fc3f6098e8c transient (running)>
# #<Async::Task:0x3fc3f60a518c Tunnelling body. (running)>
# #<Async::Task:0x3fc3ce093040 transient Async::HTTP::Body::Pipe writer. (running)>
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:51:in `block in run_in_reactor'
8) Async::HTTP::Protocol::HTTP2 behaves like Async::HTTP::Proxy proxied client can get insecure website
Failure/Error: @stream.read_until(CRLF) or raise EOFError, "Could not read line!"
EOFError:
Could not read line!
Shared Example Group: Async::HTTP::Proxy called from ./spec/async/http/proxy_spec.rb:262
# ./lib/async/http/protocol/http1/connection.rb:56:in `read_line'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/protocol-http1-0.13.2/lib/protocol/http1/connection.rb:201:in `read_response'
# ./lib/async/http/protocol/http1/response.rb:31:in `read'
# ./lib/async/http/protocol/http1/client.rb:75:in `call'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/protocol-http-0.21.0/lib/protocol/http/request.rb:53:in `call'
# ./lib/async/http/client.rb:143:in `make_response'
# ./lib/async/http/client.rb:106:in `call'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/protocol-http-0.21.0/lib/protocol/http/methods.rb:55:in `block (2 levels) in <class:Methods>'
# ./spec/async/http/proxy_spec.rb:190:in `block (3 levels) in <top (required)>'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:92:in `block (3 levels) in <module:RSpec>'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:61:in `block (2 levels) in run_in_reactor'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/task.rb:265:in `block in make_fiber'
9) Async::HTTP::Protocol::HTTP2 behaves like Async::HTTP::Proxy proxied client can get secure website
Failure/Error: endpoint.connect(&block)
OpenSSL::SSL::SSLError:
SSL_connect SYSCALL returned=5 errno=0 state=SSLv3/TLS write client hello
Shared Example Group: Async::HTTP::Proxy called from ./spec/async/http/proxy_spec.rb:262
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/generic.rb:216:in `connect_nonblock'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/generic.rb:216:in `async_send'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/generic.rb:62:in `block in wrap_blocking_method'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/ssl_socket.rb:47:in `connect'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/ssl_endpoint.rb:92:in `connect'
# ./lib/async/http/endpoint.rb:201:in `connect'
# ./lib/async/http/client.rb:157:in `block in make_pool'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:201:in `create_resource'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:230:in `block in available_resource'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/semaphore.rb:80:in `acquire'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:211:in `available_resource'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:184:in `wait_for_resource'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:79:in `acquire'
# ./lib/async/http/client.rb:104:in `call'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/protocol-http-0.21.0/lib/protocol/http/methods.rb:55:in `block (2 levels) in <class:Methods>'
# ./spec/async/http/proxy_spec.rb:207:in `block (3 levels) in <top (required)>'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:92:in `block (3 levels) in <module:RSpec>'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:61:in `block (2 levels) in run_in_reactor'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/task.rb:265:in `block in make_fiber'
10) Async::HTTP::Protocol::HTTP2 behaves like Async::HTTP::Proxy proxied client authorization header required request includes headers succeeds
Failure/Error: endpoint.connect(&block)
OpenSSL::SSL::SSLError:
SSL_connect SYSCALL returned=5 errno=0 state=SSLv3/TLS write client hello
Shared Example Group: Async::HTTP::Proxy called from ./spec/async/http/proxy_spec.rb:262
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/generic.rb:216:in `connect_nonblock'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/generic.rb:216:in `async_send'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/generic.rb:62:in `block in wrap_blocking_method'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/ssl_socket.rb:47:in `connect'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-io-1.30.1/lib/async/io/ssl_endpoint.rb:92:in `connect'
# ./lib/async/http/endpoint.rb:201:in `connect'
# ./lib/async/http/client.rb:157:in `block in make_pool'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:201:in `create_resource'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:230:in `block in available_resource'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/semaphore.rb:80:in `acquire'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:211:in `available_resource'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:184:in `wait_for_resource'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-pool-0.3.3/lib/async/pool/controller.rb:79:in `acquire'
# ./lib/async/http/client.rb:104:in `call'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/protocol-http-0.21.0/lib/protocol/http/methods.rb:55:in `block (2 levels) in <class:Methods>'
# ./spec/async/http/proxy_spec.rb:227:in `block (5 levels) in <top (required)>'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:92:in `block (3 levels) in <module:RSpec>'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-rspec-1.15.0/lib/async/rspec/reactor.rb:61:in `block (2 levels) in run_in_reactor'
# /Users/jasl/.rvm/gems/ruby-2.6.5/gems/async-1.28.5/lib/async/task.rb:265:in `block in make_fiber'
Finished in 1 minute 39.01 seconds (files took 0.83916 seconds to load)
188 examples, 10 failures
Failed examples:
rspec ./spec/async/http/client/google_spec.rb:30 # Async::HTTP::Client can fetch remote resource
rspec './spec/async/http/proxy_spec.rb[1:1:5:1]' # Async::HTTP::Protocol::HTTP10 behaves like Async::HTTP::Proxy proxied client can get insecure website
rspec './spec/async/http/proxy_spec.rb[1:1:5:2]' # Async::HTTP::Protocol::HTTP10 behaves like Async::HTTP::Proxy proxied client can get secure website
rspec './spec/async/http/proxy_spec.rb[1:1:5:3:1:1]' # Async::HTTP::Protocol::HTTP10 behaves like Async::HTTP::Proxy proxied client authorization header required request includes headers succeeds
rspec './spec/async/http/proxy_spec.rb[2:1:5:1]' # Async::HTTP::Protocol::HTTP11 behaves like Async::HTTP::Proxy proxied client can get insecure website
rspec './spec/async/http/proxy_spec.rb[2:1:5:2]' # Async::HTTP::Protocol::HTTP11 behaves like Async::HTTP::Proxy proxied client can get secure website
rspec './spec/async/http/proxy_spec.rb[2:1:5:3:1:1]' # Async::HTTP::Protocol::HTTP11 behaves like Async::HTTP::Proxy proxied client authorization header required request includes headers succeeds
rspec './spec/async/http/proxy_spec.rb[3:1:5:1]' # Async::HTTP::Protocol::HTTP2 behaves like Async::HTTP::Proxy proxied client can get insecure website
rspec './spec/async/http/proxy_spec.rb[3:1:5:2]' # Async::HTTP::Protocol::HTTP2 behaves like Async::HTTP::Proxy proxied client can get secure website
rspec './spec/async/http/proxy_spec.rb[3:1:5:3:1:1]' # Async::HTTP::Protocol::HTTP2 behaves like Async::HTTP::Proxy proxied client authorization header required request includes headers succeeds
I'll check what is going on. There are many issue with Ruby 3, including async-io
. I'm trying to work through it.
Can you please try the latest releases (bundle update
) and see if this is still an issue? I tried to reproduce and couldn't with latest versions.
Ohhh, this is on macOS only - okay I'll try it there.
Can you please try the latest release and report back?
1281 specifications (2330 requirements), 0 failures, 0 errors
--------------------------------------------------------------------------------
Checking code style...
--------------------------------------------------------------------------------
warning: parser/current is loading parser/ruby26, which recognizes
warning: 2.6.6-compliant syntax, but you are running 2.6.3.
warning: please see https://github.com/whitequark/parser#compatibility-with-ruby-mri.
Running RuboCop...
Inspecting 81 files
.................................................................................
81 files inspected, no offenses detected
Warning: the running version of Bundler (2.2.5) is older than the version that created the lockfile (2.2.8). We suggest you to upgrade to the version that created the lockfile by running `gem install bundler:2.2.8`.
jasl@localhost:~/Workspaces/Ruby/Core on replace-typhoeus-to-async-http$ ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.arm64e-darwin20]
jasl@localhost:~/Workspaces/Ruby/Core on replace-typhoeus-to-async-http$ bundle list | grep nio4r
Warning: the running version of Bundler (2.2.5) is older than the version that created the lockfile (2.2.8). We suggest you to upgrade to the version that created the lockfile by running `gem install bundler:2.2.8`.
* nio4r (2.5.7)
It works, thank you!
Thanks for the detailed response!
After
2.5.5
released, I found CocoaPods CI on macOS-bundled Ruby (Ruby 2.6.3) tests failed (see https://github.com/CocoaPods/Core/runs/1842161833?check_suite_focus=true#step:7:1645)It triggers here https://github.com/jasl/Core/blob/replace-typhoeus-to-async-http/lib/cocoapods-core/cdn_source.rb#L161 a normal
http_client.close
then goes intoasync-http
https://github.com/socketry/async-http/blob/master/lib/async/http/client.rb#L86It also reproducible on Ruby 2.6.5 (built via RVM), so I think it affect all x86 macOS Ruby 2.6.x.
Pure Ruby implemetation (by
IO4R_PURE=true
) works well