Page MenuHomePhabricator

Upgrade to Chromium 59 or newer on Debian Jessie in CI
Closed, DeclinedPublic

Description

It seems that Debian has stopped updating Chromium for Jessie.

Last update was in February 2017 for Chromium 57.

https://packages.debian.org/jessie/chromium
https://packages.debian.org/source/jessie/chromium-browser

Stretch has the current stable version, which is Chromium 61.

https://packages.debian.org/stretch/chromium

This task is for making Chromium 59 (or newer) the default for Jenkins jobs running Debian Jessie in Nodepool.
This task is for making Chromium 59 (or newer) the default for Jenkins jobs. It will be implemented with a Docker container running stretch.

Mainly for the new Headless Chrome option that was introduced in Chrome 59 release (via the --headless cli option).

See also:

Event Timeline

Would it be more natural to "just" switch everything over to Stretch?

Would it be more natural to "just" switch everything over to Stretch?

There are a couple of considerations on the nodepool side:

  1. Maintaining a 3rd image
  2. Updating any puppet that needs updating for stretch
  3. Nodepool configuration changes to ensure that the number of servers nodepool attempts to maintain is balanced

It may be faster/easier to backport the version of chromium we need (depending on the actual state of the dependency situation).

Krinkle raised the priority of this task from Medium to High.EditedSep 28 2017, 6:56 PM

Chromium is designed as an evergreen browser. So even a one month-old version represents a minority of users and makes our tests problematic (at the best, it ends up only testing fallbacks and not newer code for newer browsers, or otherwise not catching current issues before committing).

In addition to that, Chrome 57 is now 6 months old (released February/March 2017), which makes it truly end-of-life, although we were already not keeping up with minor updates, either.

@MoritzMuehlenhoff is Debian no longer supporting newer Chromium versions in jessie? If so, how difficult would it be to backport Chromium to jessie in apt.wikimedia.org? Or is that unrealistic and we should focus on migrating to stretch?

Krinkle updated the task description. (Show Details)

The Debian maintainer has asked for a volunteer to take care of chromium builds and there was a volunteer:
https://lists.debian.org/debian-security/2017/08/msg00010.html

I don't know the current status, but I've just reached out for a status update, will update the task if/when I know more.

Generally speaking we could build chromium for jessie, but moving to stretch is certainly more future-proof, Chromium follows toolchain changes fairly closely and for wheezy chromium also needed to be EOLed early on (since Chrome started to rely on C++ 2014 features, which were not implemented in the GCC in wheezy).

zeljkofilipin changed the task status from Open to Stalled.Nov 29 2017, 6:42 PM
hashar changed the task status from Stalled to Open.Nov 29 2017, 8:45 PM

Status update

T179360 provides a Docker container with a Xvfb driver and running npm install. That was a way to finely tune how to run background process in a Docker image that properly get killed on SIGTERM.

My plan is once npm-browser is solved. I will switch it to stretch and then add Firefox and Chromium to it.

And I thought I commented on this task sorry. My thoughts are:

  • I am not going to add a stretch image to Nodepool. Nodepool itself is legacy and will be phased out.
  • I don't think we want to package Chromium for Jessie. That seems like a daunting task.
  • We have Jenkins jobs being migrated to Docker and can get a stretch based image.

So the plan is to first polish up a container that has Xvfb. That is T179360. Then upgrade it as:

  • jessie -> stretch
  • add Chromium / Firefox

I have switched the *npm-browser-node-6-docker to Stretch with PhantomJS 2.1.1, Firefox 52 and Chromium 62.

Per discussion with @zeljkofilipin : If a job needs Chromium 62 we thus have to migrate it to Docker using the image wmfreleng/npm-browser-test:v2017.12.01.11.32 or later.