'Connection refused' when running parallel Chrome tests

543 views
Skip to first unread message

Sampo Niskanen

unread,
Jun 3, 2014, 4:06:51 AM6/3/14
to seleniu...@googlegroups.com
Hi,

I've been struggling for some time now getting our Cucumber tests stable in our CI.  We're using Watir-Webdriver to run Chrome on Linux, but from the stack traces I believe the problem is either in Selenium-Webdriver or ChromeDriver.  The problems started when we parallelized the tests, so that a single Jenkins slave is running multiple test sets in parallel.

Initially I had problems with the headless gem, where closing a parallel instance might randomly kill another test, causing 'chrome not reachable' errors.  This was fixed by either creating a single Xvfb instance that all tests share and leave open on exit, or by explicitly creating a separate Xvfb instance for each test.

When this was fixed, I started getting random 'Connection refused' failures.  I've checked that these occur exactly when another parallel test job closes a browser with browser.close().  It doesn't occur every time, but still our CI is broken because of it several times per day.


When this occurs, the first test fails with 'end of file reached':

      end of file reached (EOFError)
      /home/weller/jenkins/workspace/TEST_CHROME_D/server/cucumber/support/step_support/browsers.rb:13:in `goto'
      ./features/support/clients/client_support.rb:19:in `goto'
      ./features/support/pages_steps.rb:130:in `open_client'
      ./features/support/pages_steps.rb:3:in `/^I am on the login page$/'
      features/login/password_recovery.feature:26:in `And I am on the login page'

All later tests fail with 'Connection refused':

 Connection refused - connect(2) (Errno::ECONNREFUSED)
 /usr/lib/ruby/1.9.1/net/http.rb:763:in `initialize'
 /usr/lib/ruby/1.9.1/net/http.rb:763:in `open'
 /usr/lib/ruby/1.9.1/net/http.rb:763:in `block in connect'
 /usr/lib/ruby/1.9.1/timeout.rb:55:in `timeout'
 /usr/lib/ruby/1.9.1/timeout.rb:100:in `timeout'
 /usr/lib/ruby/1.9.1/net/http.rb:763:in `connect'
 /usr/lib/ruby/1.9.1/net/http.rb:756:in `do_start'
 /usr/lib/ruby/1.9.1/net/http.rb:745:in `start'
 /usr/lib/ruby/1.9.1/net/http.rb:1285:in `request'
 /var/lib/gems/1.9.1/gems/rest-client-1.6.7/lib/restclient/net_http_ext.rb:51:in `request'
 /var/lib/gems/1.9.1/gems/selenium-webdriver-2.41.0/lib/selenium/webdriver/remote/http/default.rb:83:in `response_for'
 /var/lib/gems/1.9.1/gems/selenium-webdriver-2.41.0/lib/selenium/webdriver/remote/http/default.rb:39:in `request'
 /var/lib/gems/1.9.1/gems/selenium-webdriver-2.41.0/lib/selenium/webdriver/remote/http/common.rb:40:in `call'
 /var/lib/gems/1.9.1/gems/selenium-webdriver-2.41.0/lib/selenium/webdriver/remote/bridge.rb:634:in `raw_execute'
 /var/lib/gems/1.9.1/gems/selenium-webdriver-2.41.0/lib/selenium/webdriver/remote/bridge.rb:612:in `execute'
 /var/lib/gems/1.9.1/gems/selenium-webdriver-2.41.0/lib/selenium/webdriver/remote/bridge.rb:110:in `get'
 /var/lib/gems/1.9.1/gems/selenium-webdriver-2.41.0/lib/selenium/webdriver/common/navigation.rb:14:in `to'
 /var/lib/gems/1.9.1/gems/watir-webdriver-0.6.9/lib/watir-webdriver/browser.rb:77:in `goto'
 /home/weller/jenkins/workspace/TEST_CHROME_D/server/cucumber/support/step_support/browsers.rb:13:in `goto'
 /home/weller/jenkins/workspace/TEST_CHROME_D/server/cucumber/support/step_support/browsers.rb:34:in `blank_page'
 /home/weller/jenkins/workspace/TEST_CHROME_D/server/cucumber/support/step_support/browsers.rb:54:in `clear_cookies'
 /home/weller/jenkins/workspace/TEST_CHROME_D/server/cucumber/support/step_support/browsers_hooks.rb:4:in `Before'


Does anyone have any idea how to fix this issue or debug it further?  It has made our CI practically useless.


Best regards,
   Sampo N.

Reply all
Reply to author
Forward
0 new messages