Last modified: 2014-06-29 23:36:02 UTC
$ php tests/phpunit/phpunit.php extensions/Scribunto /php: /srv/hhvm-dev/hphp/runtime/vm/jit/type.h:449: const HPHP::StringData* HPHP::JIT::Type::strVal() const: Assertion `subtypeOf(StaticStr) && m_hasConstVal' failed. php: /srv/hhvm-dev/hphp/runtime/vm/unit.h:335: HPHP::Offset HPHP::Unit::offsetOf(HPHP::PC) const: Assertion `contains(pc)' failed. Aborted ----- Host: osmium ProcessID: 27166 ThreadID: 7fcfb4e30480 ThreadPID: 27166 Name: /usr/local/bin/php Type: Aborted Runtime: hhvm Version: remotes/origin/HEAD-0-g79cc0491a586f6b49b3fe2f3586b612e9dda8dc9 DebuggerCount: 0 Arguments: tests/phpunit/phpunit.php extensions/Scribunto ThreadType: CLI # 0 ?? at php:0 # 1 __GI_raise at /build/buildd/eglibc-2.19/signal/../nptl/sysdeps/unix/sysv/linux/raise.c:56 # 2 __GI_abort at /build/buildd/eglibc-2.19/stdlib/abort.c:91 # 3 __assert_fail_base at /build/buildd/eglibc-2.19/assert/assert.c:92 # 4 __assert_fail at /lib/x86_64-linux-gnu/libc.so.6:0 # 5 HPHP::JIT::HhbcTranslator::optimizedCallIniGet() at php:0 # 6 HPHP::JIT::HhbcTranslator::optimizedFCallBuiltin(HPHP::Func const*, unsigned int, unsigned int) at php:0 # 7 HPHP::JIT::HhbcTranslator::emitFCallBuiltin(unsigned int, unsigned int, int, bool) at php:0 # 8 HPHP::JIT::IRTranslator::translateFCallBuiltin(HPHP::JIT::NormalizedInstruction const&) at php:0 # 9 HPHP::JIT::IRTranslator::translateInstrWork(HPHP::JIT::NormalizedInstruction const&) at php:0 # 10 HPHP::JIT::IRTranslator::translateInstr(HPHP::JIT::NormalizedInstruction const&) at php:0 # 11 HPHP::JIT::Translator::translateRegion(HPHP::JIT::RegionDesc const&, bool, HPHP::hphp_hash_set<HPHP::JIT::ProfSrcKey, HPHP::JIT::ProfSrcKey::Hasher, std::equal_to<HPHP::JIT::ProfSrcKey> >&) at php:0 # 12 HPHP::JIT::MCGenerator::translateWork(HPHP::JIT::TranslArgs const&) at php:0 # 13 HPHP::JIT::MCGenerator::translate(HPHP::JIT::TranslArgs const&) at php:0 # 14 HPHP::JIT::MCGenerator::retranslateOpt(unsigned int, bool) at php:0 # 15 HPHP::JIT::MCGenerator::handleServiceRequest(HPHP::JIT::TReqInfo&, unsigned char*&, HPHP::SrcKey&) at php:0 # 16 HPHP::JIT::MCGenerator::enterTC(unsigned char*, void*) at php:0 # 17 HPHP::JIT::MCGenerator::enterTCAfterPrologue(unsigned char*) at php:0 # 18 HPHP::ExecutionContext::enterVMAtFunc(HPHP::ActRec*, HPHP::ExecutionContext::StackArgsState) at php:0 # 19 HPHP::ExecutionContext::enterVM(HPHP::ActRec*, HPHP::ExecutionContext::StackArgsState, HPHP::Resumable*, HPHP::ObjectData*) at php:0 # 20 HPHP::ExecutionContext::invokeFunc(HPHP::TypedValue*, HPHP::Func const*, HPHP::Variant const&, HPHP::ObjectData*, HPHP::Class*, HPHP::VarEnv*, HPHP::StringData*, HPHP::ExecutionContext::InvokeFlags) at php:0 # 21 HPHP::invoke_static_method(HPHP::String const&, HPHP::String const&, HPHP::Variant const&, bool) at php:0 # 22 HPHP::f_hphp_invoke_method(HPHP::Variant const&, HPHP::String const&, HPHP::String const&, HPHP::Variant const&) at php:0 # 23 HPHP::JIT::X64::BackEnd::enterTCHelper(unsigned char*, HPHP::JIT::TReqInfo&) at php:0 # 24 HPHP::JIT::MCGenerator::enterTC(unsigned char*, void*) at php:0 # 25 HPHP::JIT::MCGenerator::enterTCAfterPrologue(unsigned char*) at php:0 # 26 HPHP::ExecutionContext::enterVMAtFunc(HPHP::ActRec*, HPHP::ExecutionContext::StackArgsState) at php:0 # 27 HPHP::ExecutionContext::enterVM(HPHP::ActRec*, HPHP::ExecutionContext::StackArgsState, HPHP::Resumable*, HPHP::ObjectData*) at php:0 # 28 HPHP::ExecutionContext::invokeFunc(HPHP::TypedValue*, HPHP::Func const*, HPHP::Variant const&, HPHP::ObjectData*, HPHP::Class*, HPHP::VarEnv*, HPHP::StringData*, HPHP::ExecutionContext::InvokeFlags) at php:0 # 29 HPHP::ExecutionContext::invokeUnit(HPHP::TypedValue*, HPHP::Unit*) at php:0 # 30 ?? at php:0 # 31 ?? at php:0 # 32 HPHP::include_impl_invoke(HPHP::String const&, bool, char const*) at php:0 # 33 HPHP::hphp_invoke(HPHP::ExecutionContext*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, HPHP::Array const&, HPHP::VRefParamValue const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, bool, bool, bool) at php:0 # 34 HPHP::hphp_invoke_simple(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) at php:0 # 35 ?? at php:0 # 36 HPHP::execute_program(int, char**) at php:0 # 37 HPHP::emulate_zend(int, char**) at php:0 # 38 main at php:0 # 39 __libc_start_main at /build/buildd/eglibc-2.19/csu/libc-start.c:321 # 40 ?? at php:0
(This is with Eval.Jit=true, in case it's not obvious from the trace.)
Updated the title since I think the first of the two assertions is more specific. Note that this assertion occurs even with LuaSandbox disabled.
Isolated and filed https://github.com/facebook/hhvm/issues/3037
Fixed upstream. <https://github.com/facebook/hhvm/commit/64e20acf958f3963363a1a7505b12bcb49938782>