Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Weird behaviour of the flaky test #615

Open
utkarsh2102 opened this issue Jul 1, 2020 · 0 comments
Open

Weird behaviour of the flaky test #615

utkarsh2102 opened this issue Jul 1, 2020 · 0 comments

Comments

@utkarsh2102
Copy link

Hello,

Thanks for your work and effort in maintaining http in such an awesome way! ❤️

However, this test:

it "times out", :flaky do
expect { response }.to raise_error(HTTP::TimeoutError, /Read/i)
end

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!?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant