Weird behaviour of the flaky test
Hello,
Thanks for your work and effort in maintaining http in such an awesome way! :heart:
However, this test: https://github.com/httprb/http/blob/dbc73e3df94613159a3e8b65949be4f17ac32cf3/spec/support/http_handling_shared.rb#L47-L49
seems to be showing a weird behavior.
This test works fine, without any problems (as it should) when tried in an LXC or a docker container. However, when tried in a VM or in Qemu, this fails with the following (relevant) logs:
Failures:
1) HTTP::Client with a per operation timeout read of 0 times out
Failure/Error: expect { response }.to raise_error(HTTP::TimeoutError, /Read/i)
expected HTTP::TimeoutError with message matching /Read/i but nothing was raised
Shared Example Group: "HTTP handling" called from ./spec/lib/http/client_spec.rb:284
# /usr/share/rubygems-integration/all/gems/rspec-support-3.9.2/lib/rspec/support.rb:97:in `block in <module:Support>'
# /usr/share/rubygems-integration/all/gems/rspec-support-3.9.2/lib/rspec/support.rb:106:in `notify_failure'
# /usr/share/rubygems-integration/all/gems/rspec-expectations-3.9.0/lib/rspec/expectations/fail_with.rb:35:in `fail_with'
# /usr/share/rubygems-integration/all/gems/rspec-expectations-3.9.0/lib/rspec/expectations/handler.rb:40:in `handle_failure'
# /usr/share/rubygems-integration/all/gems/rspec-expectations-3.9.0/lib/rspec/expectations/handler.rb:50:in `block in handle_matcher'
# /usr/share/rubygems-integration/all/gems/rspec-expectations-3.9.0/lib/rspec/expectations/handler.rb:27:in `with_matcher'
# /usr/share/rubygems-integration/all/gems/rspec-expectations-3.9.0/lib/rspec/expectations/handler.rb:48:in `handle_matcher'
# /usr/share/rubygems-integration/all/gems/rspec-expectations-3.9.0/lib/rspec/expectations/expectation_target.rb:65:in `to'
# /usr/share/rubygems-integration/all/gems/rspec-expectations-3.9.0/lib/rspec/expectations/expectation_target.rb:101:in `to'
# ./spec/support/http_handling_shared.rb:48:in `block (5 levels) in <top (required)>'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:257:in `instance_exec'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:257:in `block in run'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:503:in `block in with_around_and_singleton_context_hooks'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:460:in `block in with_around_example_hooks'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:472:in `block in run'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:610:in `run_around_example_hooks_for'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:472:in `run'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:460:in `with_around_example_hooks'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:503:in `with_around_and_singleton_context_hooks'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:254:in `run'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:633:in `block in run_examples'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:629:in `map'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:629:in `run_examples'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:595:in `run'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in `block in run'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in `map'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in `run'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in `block in run'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in `map'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in `run'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in `block in run'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in `map'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in `run'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:121:in `map'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/configuration.rb:2031:in `with_suite_hooks'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:116:in `block in run_specs'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/reporter.rb:74:in `report'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:115:in `run_specs'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:89:in `run'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:71:in `run'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:45:in `invoke'
# /usr/share/rubygems-integration/all/gems/rspec-core-3.9.1/exe/rspec:4:in `<main>'
Complete logs when tried in Qemu: https://paste.ubuntu.com/p/4rHT2kYyBH/ Complete logs when being tested in a VM: https://objectstorage.prodstack4-5.canonical.com/v1/AUTH_77e2ada1e7a84929a74ba3b87153c0ac/autopkgtest-groovy/groovy/amd64/r/ruby-http/20200629_203732_72902@/log.gz
Personally, I have no idea what's going wrong or what might patch this. Therefore, asking here since you'd be knowing what's (and why is it) happening!?