{"action":"created","issue":{"url":"https://api.github.com/repos/heroku/rack-timeout/issues/55","labels_url":"https://api.github.com/repos/heroku/rack-timeout/issues/55/labels{/name}","comments_url":"https://api.github.com/repos/heroku/rack-timeout/issues/55/comments","events_url":"https://api.github.com/repos/heroku/rack-timeout/issues/55/events","html_url":"https://github.com/heroku/rack-timeout/issues/55","id":46281977,"number":55,"title":"Unexpected timeouts when running Capybara test suites","user":{"login":"geoffharcourt","id":319471,"avatar_url":"https://avatars.githubusercontent.com/u/319471?v=3","gravatar_id":"","url":"https://api.github.com/users/geoffharcourt","html_url":"https://github.com/geoffharcourt","followers_url":"https://api.github.com/users/geoffharcourt/followers","following_url":"https://api.github.com/users/geoffharcourt/following{/other_user}","gists_url":"https://api.github.com/users/geoffharcourt/gists{/gist_id}","starred_url":"https://api.github.com/users/geoffharcourt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/geoffharcourt/subscriptions","organizations_url":"https://api.github.com/users/geoffharcourt/orgs","repos_url":"https://api.github.com/users/geoffharcourt/repos","events_url":"https://api.github.com/users/geoffharcourt/events{/privacy}","received_events_url":"https://api.github.com/users/geoffharcourt/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":45,"created_at":"2014-10-20T14:49:32Z","updated_at":"2015-02-22T19:11:23Z","closed_at":null,"body":"I'm running a Rails 4.1.6 app on Heroku, developing locally on OSX Yosemite, and I found an issue that might be a regression:\r\n\r\nUpon updating my app to use v0.1.0 from v0.0.4, my test suite started hanging on some of my Capybara feature tests. If I roll back to using v0.0.4, my test suite takes under 45 seconds to run. If I re-update to v0.1.0, my test suite never seems to finish (I cut it off after 11 minutes). The slow/delayed tests are all Capybara features. If I mix up the order it doesn't seem to make a difference, but the issue only affects tests that include loading some content by Ajax.\r\n\r\nThe issue seems to have no effect on my application in staging (running on Heroku), it only manifests itself during tests.\r\n\r\nI'm using Capybara 2.4.4 and Capybara-webkit 1.3.0 with RSpec 3.1.7."},"comment":{"url":"https://api.github.com/repos/heroku/rack-timeout/issues/comments/75451749","html_url":"https://github.com/heroku/rack-timeout/issues/55#issuecomment-75451749","issue_url":"https://api.github.com/repos/heroku/rack-timeout/issues/55","id":75451749,"user":{"login":"seanknox","id":1231630,"avatar_url":"https://avatars.githubusercontent.com/u/1231630?v=3","gravatar_id":"","url":"https://api.github.com/users/seanknox","html_url":"https://github.com/seanknox","followers_url":"https://api.github.com/users/seanknox/followers","following_url":"https://api.github.com/users/seanknox/following{/other_user}","gists_url":"https://api.github.com/users/seanknox/gists{/gist_id}","starred_url":"https://api.github.com/users/seanknox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seanknox/subscriptions","organizations_url":"https://api.github.com/users/seanknox/orgs","repos_url":"https://api.github.com/users/seanknox/repos","events_url":"https://api.github.com/users/seanknox/events{/privacy}","received_events_url":"https://api.github.com/users/seanknox/received_events","type":"User","site_admin":false},"created_at":"2015-02-22T19:11:23Z","updated_at":"2015-02-22T19:11:23Z","body":"Update: occasionally Puma barfs on integration specs that use `Timecop`. Here's one where we're testing password expiration works with devise:\r\n\r\n```ruby\r\nError in reactor loop escaped: Invalid argument (Errno::EINVAL)\r\n/opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/puma-2.11.0/lib/puma/reactor.rb:28:in `select'\r\n/opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/puma-2.11.0/lib/puma/reactor.rb:28:in `run_internal'\r\n/opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/puma-2.11.0/lib/puma/reactor.rb:126:in `block in run_in_thread'\r\n```\r\n\r\nThe tests keep moving along actually, and rspec reports they pass. If I catch error and cancel the tests manually, full backtrace:\r\n\r\n```ruby\r\nFailures:\r\n\r\n  1) Password expires user is forced to change his/her password\r\n     Failure/Error: log_out\r\n     EOFError:\r\n       end of file reached\r\n     # /opt/rubies/2.2.0/lib/ruby/2.2.0/net/protocol.rb:153:in `read_nonblock'\r\n     # /opt/rubies/2.2.0/lib/ruby/2.2.0/net/protocol.rb:153:in `rbuf_fill'\r\n     # /opt/rubies/2.2.0/lib/ruby/2.2.0/net/protocol.rb:134:in `readuntil'\r\n     # /opt/rubies/2.2.0/lib/ruby/2.2.0/net/protocol.rb:144:in `readline'\r\n     # /opt/rubies/2.2.0/lib/ruby/2.2.0/net/http/response.rb:39:in `read_status_line'\r\n     # /opt/rubies/2.2.0/lib/ruby/2.2.0/net/http/response.rb:28:in `read_new'\r\n     # /opt/rubies/2.2.0/lib/ruby/2.2.0/net/http.rb:1413:in `block in transport_request'\r\n     # /opt/rubies/2.2.0/lib/ruby/2.2.0/net/http.rb:1410:in `catch'\r\n     # /opt/rubies/2.2.0/lib/ruby/2.2.0/net/http.rb:1410:in `transport_request'\r\n     # /opt/rubies/2.2.0/lib/ruby/2.2.0/net/http.rb:1383:in `request'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/webmock-1.20.4/lib/webmock/http_lib_adapters/net_http.rb:97:in `block in request'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/webmock-1.20.4/lib/webmock/http_lib_adapters/net_http.rb:110:in `call'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/webmock-1.20.4/lib/webmock/http_lib_adapters/net_http.rb:110:in `block in request'\r\n     # /opt/rubies/2.2.0/lib/ruby/2.2.0/net/http.rb:853:in `start'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/webmock-1.20.4/lib/webmock/http_lib_adapters/net_http.rb:109:in `request'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.44.0/lib/selenium/webdriver/remote/http/default.rb:83:in `response_for'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.44.0/lib/selenium/webdriver/remote/http/default.rb:39:in `request'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.44.0/lib/selenium/webdriver/remote/http/common.rb:40:in `call'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.44.0/lib/selenium/webdriver/remote/bridge.rb:640:in `raw_execute'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.44.0/lib/selenium/webdriver/remote/bridge.rb:618:in `execute'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.44.0/lib/selenium/webdriver/remote/bridge.rb:375:in `clickElement'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.44.0/lib/selenium/webdriver/common/element.rb:54:in `click'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/capybara-2.4.4/lib/capybara/selenium/node.rb:73:in `click'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/capybara-2.4.4/lib/capybara/node/element.rb:133:in `block in click'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/capybara-2.4.4/lib/capybara/node/base.rb:84:in `synchronize'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/capybara-2.4.4/lib/capybara/node/element.rb:133:in `click'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/capybara-2.4.4/lib/capybara/node/actions.rb:27:in `click_link'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/capybara-2.4.4/lib/capybara/session.rb:676:in `block (2 levels) in <class:Session>'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/capybara-2.4.4/lib/capybara/dsl.rb:51:in `block (2 levels) in <module:DSL>'\r\n     # ./spec/support/feature_helpers/authentication_helpers.rb:15:in `log_out'\r\n     # ./spec/features/password_expiration_spec.rb:24:in `block (2 levels) in <top (required)>'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/example.rb:177:in `instance_exec'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/example.rb:177:in `block in run'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/example.rb:385:in `block in with_around_and_singleton_context_hooks'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/example.rb:343:in `block in with_around_example_hooks'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/hooks.rb:474:in `block in run'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/hooks.rb:614:in `block in run_around_example_hooks_for'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/example.rb:247:in `call'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/example.rb:247:in `call'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-rails-3.2.0/lib/rspec/rails/adapters.rb:111:in `block (2 levels) in <module:MinitestLifecycleAdapter>'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/example.rb:333:in `instance_exec'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/example.rb:333:in `instance_exec'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/hooks.rb:387:in `execute_with'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/ho/opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/puma-2.11.0/lib/puma/reactor.rb:28:in `select'oks.rb:616:in `block (2 levels) in run_around_example_hooks_for'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/example.rb:247:in `call'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/example.rb:247:in `call'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/hooks.rb:617:in `run_around_example_hooks_for'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/hooks.rb:474:in `run'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/example.rb:343:in `with_around_example_hooks'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/example.rb:385:in `with_around_and_singleton_context_hooks'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/example.rb:174:in `run'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/example_group.rb:548:in `block in run_examples'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/example_group.rb:544:in `map'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/example_group.rb:544:in `run_examples'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/example_group.rb:512:in `run'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/runner.rb:110:in `block (3 levels) in run_specs'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/runner.rb:110:in `map'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/runner.rb:110:in `block (2 levels) in run_specs'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/configuration.rb:1526:in `with_suite_hooks'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/runner.rb:109:in `block in run_specs'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/reporter.rb:62:in `report'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/runner.rb:108:in `run_specs'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/runner.rb:86:in `run'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/runner.rb:70:in `run'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/runner.rb:38:in `invoke'\r\n     # /opt/rubies/2.2.0/lib/ruby/gems/2.2.0/gems/rspec-core-3.2.0/exe/rspec:4:in `<top (required)>'\r\n     # bin/rspec:16:in `load'\r\n     # bin/rspec:16:in `<main>'\r\n```"}}