Skip to content
This repository was archived by the owner on Jul 7, 2025. It is now read-only.
This repository was archived by the owner on Jul 7, 2025. It is now read-only.

Failing to catch Net::ReadTimeout #100

@mhluska

Description

@mhluska

It seems this is unable to retry on certain exceptions like Net::ReadTimout. Here's my stack trace:

     1.1) Failure/Error: find('[href="/videos"]').click

          Net::ReadTimeout:
            Net::ReadTimeout



          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/webmock-3.3.0/lib/webmock/http_lib_adapters/net_http.rb:97:in `block in request'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/webmock-3.3.0/lib/webmock/http_lib_adapters/net_http.rb:110:in `block in request'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/webmock-3.3.0/lib/webmock/http_lib_adapters/net_http.rb:109:in `request'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/selenium-webdriver-3.14.0/lib/selenium/webdriver/remote/http/default.rb:121:in `response_for'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/selenium-webdriver-3.14.0/lib/selenium/webdriver/remote/http/default.rb:76:in `request'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/selenium-webdriver-3.14.0/lib/selenium/webdriver/remote/http/common.rb:62:in `call'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/selenium-webdriver-3.14.0/lib/selenium/webdriver/remote/bridge.rb:164:in `execute'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/selenium-webdriver-3.14.0/lib/selenium/webdriver/remote/oss/bridge.rb:584:in `execute'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/selenium-webdriver-3.14.0/lib/selenium/webdriver/remote/oss/bridge.rb:562:in `find_elements_by'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/selenium-webdriver-3.14.0/lib/selenium/webdriver/common/search_context.rb:78:in `find_elements'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/capybara-3.8.2/lib/capybara/selenium/driver.rb:77:in `find_css'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/capybara-3.8.2/lib/capybara/node/base.rb:97:in `find_css'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/capybara-3.8.2/lib/capybara/queries/selector_query.rb:137:in `find_nodes_by_selector_format'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/capybara-3.8.2/lib/capybara/queries/selector_query.rb:102:in `block in resolve_for'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/capybara-3.8.2/lib/capybara/node/base.rb:77:in `synchronize'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/capybara-3.8.2/lib/capybara/queries/selector_query.rb:101:in `resolve_for'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/capybara-3.8.2/lib/capybara/node/finders.rb:288:in `block in synced_resolve'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/capybara-3.8.2/lib/capybara/node/base.rb:82:in `synchronize'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/capybara-3.8.2/lib/capybara/node/finders.rb:286:in `synced_resolve'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/capybara-3.8.2/lib/capybara/node/finders.rb:33:in `find'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/capybara-3.8.2/lib/capybara/session.rb:728:in `block (2 levels) in <class:Session>'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/capybara-3.8.2/lib/capybara/dsl.rb:51:in `block (2 levels) in <module:DSL>'
          # ./spec/system/affiliate_spec.rb:34:in `block (2 levels) in <main>'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:123:in `block in run'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:110:in `loop'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:110:in `run'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/rspec-retry-0.6.1/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'
          # ./spec/spec_helper.rb:123:in `block in setup_rspec_retry'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:123:in `block in run'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:110:in `loop'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:110:in `run'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/rspec-retry-0.6.1/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'
          # /Users/mhluska/.rvm/gems/ruby-2.5.1/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:37:in `block (2 levels) in setup'

It looks like this library calls ex.run which throws the Net::ReadTimeout error and RSpec fails to put it into example.exception? Would this benefit from a begin/rescue around the ex.run call for these catastrophic cases?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions