Page MenuHomePhabricator

hhvm aborts on extensions/CirrusSearch/tests/phan/stubs/intl.php blocking deployment sync
Closed, ResolvedPublic

Description

When trying to deploy a cherry-pick for CirrusSearch, we've encountered this error:

[16:30:20]  <MaxSem>	23:27:19 sync-file failed: <CalledProcessError> Command 'find -O2 '/srv/mediawiki-staging/php-1.34.0-wmf.1/extensions/CirrusSearch' -not -type d -name '*.php' -not -name 'autoload_static.php'  -or -name '*.inc' | xargs -n1 -P30 -exec php -l >/dev/null 2>&1' returned non-zero exit status 125

Further investigation showed that the culprit is:

$ php -l /srv/mediawiki-staging/php-1.34.0-wmf.1/extensions/CirrusSearch/tests/phan/stubs/intl.php
[Thu Apr 25 00:17:58 2019] [hphp] [140517:7f12eff713c0:0:000001] [] Lost parent, LightProcess exiting
[Thu Apr 25 00:17:58 2019] [hphp] [140518:7f12eff713c0:0:000001] [] Lost parent, LightProcess exiting
Aborted (core dumped)

So hhvm breaks when trying to read intl.php file which defines class Transliterator. This seems to happen in all hhvm versions past 3.11.1: https://3v4l.org/Dq206

PHP 7 is fine with this file. This doesn't seem to be new since previous branches have the same file and produce the same error.

We need to look into how to handle this - either remove this specific check or ask hhvm for a fix or find some other solution.

Related Objects

Event Timeline

hhvm backtrace:

1bt
2#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
3#1 0x00007fb97a17142a in __GI_abort () at abort.c:89
4#2 0x00000000011fd4ad in HPHP::IndexedStringMap<HPHP::Func*, false, unsigned int, 4294967295u>::Builder::add (t=<optimized out>,
5 name=<optimized out>, this=<optimized out>) at ./hphp/runtime/vm/indexed-string-map.h:188
6#3 HPHP::PreClassEmitter::create (this=<optimized out>, unit=...) at ./hphp/runtime/vm/preclass-emitter.cpp:274
7#4 0x00000000012403b0 in HPHP::UnitEmitter::create (this=this@entry=0x7ffd68b71c40) at ./hphp/runtime/vm/unit-emitter.cpp:548
8#5 0x0000000001243997 in HPHP::UnitRepoProxy::load (this=0x7fb971ce07d0,
9 name="/srv/mediawiki/php-1.34.0-wmf.1/extensions/CirrusSearch/tests/phan/stubs/intl.php", md5=...) at ./hphp/runtime/vm/unit-emitter.cpp:866
10#6 0x0000000001209821 in HPHP::Repo::loadUnit (this=<optimized out>,
11 name="/srv/mediawiki/php-1.34.0-wmf.1/extensions/CirrusSearch/tests/phan/stubs/intl.php", md5=...) at ./hphp/runtime/vm/repo.cpp:250
12#7 0x0000000000fa3126 in HPHP::(anonymous namespace)::createUnitFromString (
13 path=0x7fb969d61608 "/srv/mediawiki/php-1.34.0-wmf.1/extensions/CirrusSearch/tests/phan/stubs/intl.php", contents=...,
14 releaseUnit=releaseUnit@entry=0x7ffd68b72008) at ./hphp/runtime/base/unit-cache.cpp:210
15#8 0x000000000216852f in HPHP::(anonymous namespace)::createUnitFromFile (releaseUnit=0x7ffd68b72008, path=0x7fb969d615f0)
16 at ./hphp/runtime/base/unit-cache.cpp:232
17#9 HPHP::(anonymous namespace)::<lambda()>::operator() (__closure=<optimized out>) at ./hphp/runtime/base/unit-cache.cpp:293
18#10 HPHP::(anonymous namespace)::loadUnitNonRepoAuth (statInfo=..., requestedPath=<optimized out>) at ./hphp/runtime/base/unit-cache.cpp:305
19#11 HPHP::(anonymous namespace)::lookupUnitNonRepoAuth (statInfo=..., requestedPath=<optimized out>) at ./hphp/runtime/base/unit-cache.cpp:335
20#12 HPHP::(anonymous namespace)::checkoutFile (statInfo=..., path=<optimized out>) at ./hphp/runtime/base/unit-cache.cpp:423
21#13 HPHP::lookupUnit (path=0x7fb969d6fb80, currentDir=currentDir@entry=0x224b169 "", initial_opt=initial_opt@entry=0x0)
22 at ./hphp/runtime/base/unit-cache.cpp:525
23#14 0x0000000000f1a340 in HPHP::execute_program_impl (argc=argc@entry=5, argv=argv@entry=0x7ffd68b73090)
24 at ./hphp/runtime/base/program-functions.cpp:1710
25#15 0x0000000000f1ad7e in HPHP::execute_program (argc=5, argv=argv@entry=0x7ffd68b73090) at ./hphp/runtime/base/program-functions.cpp:1148
26#16 0x0000000000e9af38 in HPHP::emulate_zend (argc=argc@entry=3, argv=argv@entry=0x7ffd68b73698) at ./hphp/runtime/base/emulate-zend.cpp:283
27#17 0x0000000000a70f33 in main (argc=<optimized out>, argv=0x7ffd68b73698) at ./hphp/hhvm/main.cpp:65

Change 506332 had a related patch set uploaded (by MaxSem; owner: MaxSem):
[mediawiki/extensions/CirrusSearch@master] Remove intl stubs

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

Change 506332 merged by jenkins-bot:
[mediawiki/extensions/CirrusSearch@master] Remove intl stubs

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

MaxSem claimed this task.

Since the immediate issue has been resolved and nothing similar has popped up so far, guess we can close.