Page MenuHomePhabricator

Mocking abstract objects fails on HHVM
Closed, ResolvedPublic

Description

/vagrant/mediawiki/tests/phpunit$ php phpunit.php
[Sun Apr 12 20:07:41 2015] [hphp] [10053:7f85318b6bc0:0:000001] [834dc6:835050:9ca744:9caa13:9cf12a:9d070f:a6e441:856a5d:7f852952cec5:909e04]
Fatal error: Class SomeJob contains abstract method (run) and must therefore be declared abstract or implement the remaining methods in /srv/vagrant/mediawiki/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator.php(301) : eval()'d code on line 1

This is an upstream HHVM bug: https://github.com/facebook/hhvm/issues/5170

Related Objects

View Standalone Graph
This task is connected to more than 200 other tasks. Only direct parents and subtasks are shown here. Use View Standalone Graph to show more of the graph.

Event Timeline

JanZerebecki raised the priority of this task from to Needs Triage.
JanZerebecki updated the task description. (Show Details)
JanZerebecki subscribed.

Change 205816 had a related patch set uploaded (by BryanDavis):
Fix abstract method error from JobTest

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

Change 205816 abandoned by BryanDavis:
Fix abstract method error from JobTest

Reason:
The error is an upstream HHVM issue https://github.com/facebook/hhvm/issues/5170

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

bd808 renamed this task from running phpunit with hhvm on vagrant fails to Mocking abstract objects fails on HHVM.Apr 29 2015, 5:22 PM
bd808 added subscribers: Krinkle, demon.

I'm now getting this while trying to add a new extension to CI: https://integration.wikimedia.org/ci/job/mwext-WikidataQuality-repo-tests-sqlite-hhvm/2/console
Which leads me to the question: Why doesn't the hhvm+phpunit Jenkins job for core fail (or for other extensions)?

The upstream fix was merged, will we cherry-pick that?

I'm now getting this while trying to add a new extension to CI: https://integration.wikimedia.org/ci/job/mwext-WikidataQuality-repo-tests-sqlite-hhvm/2/console
Which leads me to the question: Why doesn't the hhvm+phpunit Jenkins job for core fail (or for other extensions)?

The version of phpunit-mock-objects that Jenkins is using to run the tests is old (1.2.3) and not effected by the change that causes the problem.

The upstream fix was merged, will we cherry-pick that?

@Joe, what's the preferred way to ask for a particular HHVM upstream fix to be included in our custom builds? Do we have a specific tag or tag combination that you look for when you are getting ready to create a new version?

Change 237860 had a related patch set uploaded (by BryanDavis):
Backport of D37899: Fix ReflectionClass::getMethods filter

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

Change 237860 merged by Giuseppe Lavagetto:
Backport of D37899: Fix ReflectionClass::getMethods filter

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

Since the package has been built and deployed, is this resolved?

The reproduction given in https://github.com/facebook/hhvm/issues/5170 is now giving the correct result when run on HHVM on mw1017, so I'd assume so.

bd808 claimed this task.
Restricted Application added a subscriber: StudiesWorld. · View Herald Transcript