Has ChromeDriver been updated on the Ubuntu 14.04 (Trusty) image?

build-image
chrome
trusty

#1

Hi,

We started observing build failures 2 hours ago due to a mismatch between the Chrome and ChromeDriver versions.

We are using the Ubuntu 14.04 (Trusty) image.

The error message we get is:

unknown error: Chrome version must be >= 55.0.2883.0
(Driver info: chromedriver=2.28.455506 (18f6627e265f442aeec9b6661a49fe819aeeea1f),platform=Linux 3.13.0-106-generic x86_64)

Whereas the documentation indicates the following versions :

Google Chrome
Version: 54.0.2840.100

ChromeDriver
Version: 2.27.440175

Our last successful build was yesterday (8 March) around 9:42 AM PST, and we observed the first failure today (9 March) at 1:55 AM PST (we had no build inbetween those two times, so I can’t pinpoint it more precisely).

Has ChromeDriver been updated to 2.28 in the last 18 hours, and not Chrome? Or is this a configuration problem on our end?


Intermittent java error when running Circle CI with nightwatch/selenium/saucelabs
#2

Same problem here. We are king stuck here @CircleCI-Employees could you upgrade the chrome version ASAP please?


#3

We have not made any changes to the base image. We would never update Chrome without also updating Chromedriver.

This happens every time a new version of chrome is related. @gregclermont and @carolineBda can you give me more details about your build setup? Something in your build is updating chromedriver. I would love to figure out what this is so that we can document it better.

In the meantime, the best thing to do would be to either upgrade chrome manually, or downgrade chromedriver.


#4

@levlaz :
We are on ubuntu 14:

We do nothing special with the container itself:
machine:
node:
version: 6.10.0
services:
- rabbitmq-server

https://circleci.com/gh/cameliaTech/b-reputation

Do you have a quick solution as it really stop the entire team to be able to build and release!


#5

I’ve found the problem!

It’s a ruby project and we use a gem called chromedriver-helper (v1.0.0) that automatically installs the latest version of ChromeDriver.
This is intended for local development, to make the setup of the project easier, and we didn’t realize that it was also running on CircleCI (because we put it in the :test group of the Gemfile).

I haven’t tried to fix it yet, but I think that simply moving the gem to the :development group should be a good enough solution.

Thanks for helping, @levlaz :pray:


#6

This doesn’t work as is, because the default dependencies command(1) doesn’t exclude the development group.

We could override the default command, but our next try has been this:

group :test do
  ...
  gem "chromedriver-helper" unless ENV.key?('CIRCLECI')
end

This does succeed at preventing the installation of the problematic newer version of ChromeDriver, but we have now another problem: Selenium WebDriver fails to connect to ChromeDriver, with this error message:

Selenium::WebDriver::Error::WebDriverError:
  unable to connect to chromedriver 127.0.0.1:9515

EDIT: we fixed this by rebuilding without cache. I guess that some files created by the gem and kept in the cache were interfering even after the gem was disabled.

A quick search on the forums led me to a topic discussing a similar issue. Interestingly, one of the solutions proposed to solve this is to use the gem that we just disabled :slight_smile:

This could work if chromedriver-helper allowed to configure the ChromeDriver version to install, but it’s not currently the case (there is an open pull-request for this on GitHub).

I haven’t really dug into this yet. I’d like to figure out the ChromeDriver connection problem, possibly by understanding how/why it worked with the gem, but I might use a patched version of the gem that allows pinning the ChromeDriver version to 2.27 as a quick workaround.


(1): defaut dependencies command:

$ bundle check --path=vendor/bundle || bundle install --path=vendor/bundle --jobs=4 --retry=3

#7

#TL;DR

The problem was caused by the capybara-helper gem that installed another (newer) version of ChromeDriver.

We fixed it by disabling this gem on CircleCI with this modification to our Gemfile:

gem 'chromedriver-helper' unless ENV.key?('CIRCLECI')

Then we had to rebuild without cache to fix this error:

Selenium::WebDriver::Error::WebDriverError:
  unable to connect to chromedriver 127.0.0.1:9515

#8

We are using protractor and it wouldn’t run without running before the following command (which get’s the latest webdriver version):

webdriver update

We couldn’t fixed the version of chromedriver so what I did to fix it while waiting the chrome verison gets updated in the container is to manually download the latest chrome like that:

    # Update Google Chrome.
- wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
- sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb stable main" >> /etc/apt/sources.list.d/google.list'
- sudo apt-get update
- sudo apt-get --only-upgrade install google-chrome-stable

Do you see a better way to do that?


#9

For what it’s worth, I’m still running into this exact issue running Intern / JS functional tests.

Chrome version must be >= 55.0.2883.0
(Driver info: chromedriver=2.28.455506 (18f6627e265f442aeec9b6661a49fe819aeeea1f)

It’s not a Ruby project, so we had no gemfile to modify, and webdriver / chromedriver-helper npm packages were not installed. What’s especially wonky was that this error was only showing up one branch - master and other branches were working just fine.

@carolineBda’s fix is working in the meanwhile (under machine: pre:). Thank you for posting your solution!


#10

Hi @constancecchen, I found a faster solution, I force the chrome driver version on I run the command webdriver update :

./node_modules/protractor/bin/webdriver-manager update --versions.chrome=2.27 

If you also run that command you can try the same.


#11

@carolineBda

Even installing the latest chromedriver version using:

node_modules/.bin/webdriver-manager update --versions.chrome=2.29

I’m getting the error:

Any idea?


#12