Page MenuHomePhabricator

Translatewiki.net broken due to hhvm update
Closed, ResolvedPublic

Description

New HHVM dropped PHP5 support, which included phpyaml.

Currently imports and exports are not possible, and site would likely go down if hhvm daemon was restarted.

Alternatives are:

  1. Downgrade hhvm (only postpones the issue, hard to find older versions)
  2. Switch to php (this is already planned, just no date set yet) T181208
  3. Get replacement yaml library installed for hhvm (which is tricky, I don't want to cause dirty diffs because changes in the output format)

Event Timeline

Nikerabbit triaged this task as Unbreak Now! priority.Mar 19 2018, 6:47 AM

Change 420292 had a related patch set uploaded (by Nikerabbit; owner: Nikerabbit):
[translatewiki@master] Migrade from HHVM to PHP 7

https://gerrit.wikimedia.org/r/420292

Is there no yaml package you can include via composer or similar?

Possibly, but I consider migrating to PHP7 a better long-term solution, and not too difficult.

Of the packages I know, spyc has had known issues, syck is low because it shells out to python, and symfony yaml's output format is different.

Change 420292 merged by jenkins-bot:
[translatewiki@master] Migrate from HHVM to PHP 7

https://gerrit.wikimedia.org/r/420292

Nikerabbit moved this task from In Progress to QA on the Language-2018-Jan-Mar board.

Had a few surprises:

  • Had to change 'memcached-pecl' to CACHE_MEMCACHED of the php workers would pile up using all CPU time for no clear reason.
  • Development instance had profiling that failed with a fatal, but only for POST requests. Took a while to figure out.
  • PHP 7.2 is too spammy with its deprecations, especially Elastica library is not compatible, it cannot be updated because we cannot updated to ElasticSearch 6.0 yet because CirrusSearch doesn't support it. Fixed by downgrading to PHP 7.1.
  • Jobqueue was failing with memory. Had to add --memory-limit to the systemd service file.
  • Not obvious which php extensions were required. I had missed curl and xml initially.
  • If both PHP 7.2 and 7.1 were installed, cli scripts still defaulted to 7.2 until I uninstalled it.

Site is up and running with PHP7.1 (with FPM). Performance seems equal. Memory usage is maybe slightly lower, but depends on number of concurrent connections.