News/Tools Precise deprecation

From Wikitech
Jump to navigation Jump to search

Hosts running Ubuntu Precise (12.04) as an operating system were removed from the Toolforge infrastructure on 2017-03-14. The login bastions were migrated to Trusty (14.04) in 2015.

Why did we do this?

Ubuntu Precise was released in April 2012, and support for it (including security updates) ends in April 2017. We needed to shut down all Precise hosts before the end of support date to ensure that Toolforge remains a secure platform. This migration took many months because many people were still using the Precise hosts and our users are working on tools in their spare time.

What changed?

early September 2016 Done
Jobs started without -l release=trusty and webservices started with --release=precise will print a warning to standard error. This will end up in the job's err log file for most jobs.
26 October 2016 Done
Jobs started with jsub will no longer run on Precise hosts by default, and will instead run on Trusty hosts. This means jobs running via cron will migrate to trusty automatically.
February 2017 Done
Tools starting jobs with jsub -l release=precise will start receiving emails urging them to migrate to Trusty.
March 14th 2017 Done
Jobs started with jsub -l release=precise will no longer function and will crash with an error.

What should I do if my jobs or webservice are not running now?

If you:

  • Ran jobs with jsub -l release=precise:
    • test whether your process works on a Trusty host by submitting the job with -l release=trusty
  • Ran a webservice with --release=precise:
    • test whether your process works on a Trusty host by submitting the job with --release=trusty
  • Ran a webservice without specifying the release
    • Run webservice start to migrate it to Trusty.

If your job fails to run on Trusty and you need help figuring out why, file a Phabricator task asking for help.

What are the primary changes with moving from Precise to Trusty?

You get newer versions of most software, which is great - but also means you can run into compatibility issues. Common issues probably include:

  1. Newer version of PHP (5.5 rather than 5.3). Some old deprecated functions / interfaces were dropped in 5.4, so watch out if your code uses any of them. A comprehensive listing can be found in https://secure.php.net/manual/en/migration54.php - specifically in https://secure.php.net/manual/en/migration54.incompatible.php. There are also a few additional breaking changes in the 5.5 that can be seen at https://secure.php.net/manual/en/migration55.incompatible.php.
  2. Slightly newer version of Python 2 and much newer version of Python3 (3.2 -> 3.4). If you had virtualenvs set up to run in Precise, you will have to recreate them.

Useful links