Page MenuHomePhabricator

Update HHVM package to recent release
Closed, ResolvedPublic

Description

We are currently 9 releases behind. This includes the 3.8 series, which was devoted to WordPress, Drupal and MediaWiki performance, and resulted in "a 19.4% RPS improvement for MediaWiki workloads" (link). (I don't expect to see the same impact in production, but we are still due for a nice improvement).

3.9 and 3.12 are LTS, so it makes sense to target one of those.

3.6 becomes EOL at the end of January 2016.

Related Objects

StatusSubtypeAssignedTask
ResolvedQgil
ResolvedKeegan
DeclinedNone
ResolvedQgil
ResolvedQgil
InvalidNone
InvalidNone
ResolvedNone
DeclinedQgil
ResolvedQgil
ResolvedNone
Resolvedbd808
DuplicateNone
ResolvedAddshore
ResolvedKrinkle
OpenNone
DeclinedAddshore
Resolvedbd808
ResolvedJoe
DeclinedNone
ResolvedJoe
ResolvedJoe
ResolvedJoe

Event Timeline

ori raised the priority of this task from to High.
ori updated the task description. (Show Details)
ori added subscribers: ori, Joe, faidon, fgiunchedi.
ori set Security to None.

Status update:

  • As of late last week, we have 3.11 packages prepared *in the upstream Debian pkg-hhvm repository* (to which @Joe, myself, and David from Facebook have access to). Most local patches were rebased and/or dropped. This package builds and runs the test suite successfully and is in pretty good shape.
  • We're still working on a few details with regards to init scripts etc. that will be done any day now. After this, this package will find its way into Debian.
  • Our own Gerrit git repository does not have this work yet. The two repositories had diverged quite a bit and it was simpler to start from Debian's and three-way merge there, as this was closer to where we want to end up. I will sync them up to avoid confusion after we're done with this effort.
  • The biggest blocker for a deployment to our fleet right now is that, unfortunately, @tstarling's output streaming patches (T91468) were never merged upstream and the patch no longer applies cleanly to 3.11. The preparatory work was submitted to HHVM upstream with https://github.com/facebook/hhvm/pull/5340 but was never merged, and the rest were never submitted. @ori rebased that and resubmitted it last week as https://github.com/facebook/hhvm/pull/6651 with the hope that we'll get it merged this time. We can carry it locally for now like before, but we'll need the rest of the patches to be rebased, and that at the moment is probably blocked on @ori.
  • Another potential blocker that needs further testing is whether Luasandbox still works with 3.11, given a user report that we previously got, T115779.

Status update:

  • As of late last week, we have 3.11 packages prepared *in the upstream Debian pkg-hhvm repository* (to which @Joe, myself, and David from Facebook have access to). Most local patches were rebased and/or dropped. This package builds and runs the test suite successfully and is in pretty good shape.

\o/

Thank you so much!

  • The biggest blocker for a deployment to our fleet right now is that, unfortunately, @tstarling's output streaming patches (T91468) were never merged upstream and the patch no longer applies cleanly to 3.11. The preparatory work was submitted to HHVM upstream with https://github.com/facebook/hhvm/pull/5340 but was never merged, and the rest were never submitted. @ori rebased that and resubmitted it last week as https://github.com/facebook/hhvm/pull/6651 with the hope that we'll get it merged this time. We can carry it locally for now like before, but we'll need the rest of the patches to be rebased, and that at the moment is probably blocked on @ori.

Fred Emmott from the HHVM team said he'd ping a few people to look at the test failures.

  • Another potential blocker that needs further testing is whether Luasandbox still works with 3.11, given a user report that we previously got, T115779.

It works with 3.12 (current HEAD of master), so it should work with 3.11 too.

ori@hhvm-test:~/hhvm# hhvm --version
HipHop VM 3.12.0-dev (rel)
Compiler: heads/pr/6651-0-gec0481bb0405f96e60eb32c826f8e0e0bc007a9d
Repo schema: 06d86dc0f54b8e041cabb6d779fc5ce9d30bd816
ori@hhvm-test:~/hhvm# hhvm --php -r 'var_dump( extension_loaded("luasandbox") );'
bool(true)
ori@hhvm-test:~/hhvm# hhvm --php -r '$sandbox = new LuaSandbox; var_dump( $sandbox->loadString( "return 1" )->call() );'
array(1) {
  [0]=>
  int(1)
}

Update: tested with 3.11 too, works fine.

Noting 3.12 is the next HHVM LTS (to be released end of Jan 2016)

3.9 is out of LTS support mid July 2016

The MW benchmarks are somewhat of a con. They're not including/using scribunto, so I suspect the Obama page used for benchmark isn't completely representative workload.... But comparatively... Plus improvements in newer MW versions.

Possible iconv related issue in T124574 on older HHVM versions (according to 3v4l), but that could be the versions of iconv they've built hhvm again, as the test failure doesn't happen on our CI environment

3.6 becomes EOL at the end of January 2016.

It looks like it has been postponed until March: https://github.com/hhvm/user-documentation/issues/267

I built a 3.12.1 backport from the debian unstable git repository, and confirmed it does indeed absolve its basic functionalities.

I am now in the process of building the needed extensions; when they're ready my course of action will be:

  1. Test that there is no surprise with our custom init script/config
  2. Install the new packages manually on beta (today)
  3. If no big issue is found, install on mw1017 on Wednesday
  4. If no issue is found, install on the canaries on Thursday

Change 274098 had a related patch set uploaded (by Giuseppe Lavagetto):
Upgrade debian/rules for HHVM 3.12

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

Status update:

  1. luasandbox works fine after tweaking debian/rules (as in - it's loaded and can execute a very simple lua script)
  2. tidy needs some work

Change 274169 had a related patch set uploaded (by Giuseppe Lavagetto):
New version for HHVM 3.12

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

While tidy has been fixed with the latest patchset I created, wikidiff2 needs some amending (still not sure how much).

Will report any progress here.

Change 274098 merged by Giuseppe Lavagetto:
Upgrade debian/rules for HHVM 3.12

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

Change 274169 merged by Giuseppe Lavagetto:
New version for HHVM 3.12

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

Out of curiosity, have you got any stats about the foreseen performance improvements?