Page MenuHomePhabricator

HHVM: assertion from optimizedCallIniGet
Closed, ResolvedPublic

Description

$ 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

  1. 0 ?? at php:0
  2. 1 __GI_raise at /build/buildd/eglibc-2.19/signal/../nptl/sysdeps/unix/sysv/linux/raise.c:56
  3. 2 __GI_abort at /build/buildd/eglibc-2.19/stdlib/abort.c:91
  4. 3 __assert_fail_base at /build/buildd/eglibc-2.19/assert/assert.c:92
  5. 4 __assert_fail at /lib/x86_64-linux-gnu/libc.so.6:0
  6. 5 HPHP::JIT::HhbcTranslator::optimizedCallIniGet() at php:0
  7. 6 HPHP::JIT::HhbcTranslator::optimizedFCallBuiltin(HPHP::Func const*, unsigned int, unsigned int) at php:0
  8. 7 HPHP::JIT::HhbcTranslator::emitFCallBuiltin(unsigned int, unsigned int, int, bool) at php:0
  9. 8 HPHP::JIT::IRTranslator::translateFCallBuiltin(HPHP::JIT::NormalizedInstruction const&) at php:0
  10. 9 HPHP::JIT::IRTranslator::translateInstrWork(HPHP::JIT::NormalizedInstruction const&) at php:0
  11. 10 HPHP::JIT::IRTranslator::translateInstr(HPHP::JIT::NormalizedInstruction const&) at php:0
  12. 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
  13. 12 HPHP::JIT::MCGenerator::translateWork(HPHP::JIT::TranslArgs const&) at php:0
  14. 13 HPHP::JIT::MCGenerator::translate(HPHP::JIT::TranslArgs const&) at php:0
  15. 14 HPHP::JIT::MCGenerator::retranslateOpt(unsigned int, bool) at php:0
  16. 15 HPHP::JIT::MCGenerator::handleServiceRequest(HPHP::JIT::TReqInfo&, unsigned char*&, HPHP::SrcKey&) at php:0
  17. 16 HPHP::JIT::MCGenerator::enterTC(unsigned char*, void*) at php:0
  18. 17 HPHP::JIT::MCGenerator::enterTCAfterPrologue(unsigned char*) at php:0
  19. 18 HPHP::ExecutionContext::enterVMAtFunc(HPHP::ActRec*, HPHP::ExecutionContext::StackArgsState) at php:0
  20. 19 HPHP::ExecutionContext::enterVM(HPHP::ActRec*, HPHP::ExecutionContext::StackArgsState, HPHP::Resumable*, HPHP::ObjectData*) at php:0
  21. 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
  22. 21 HPHP::invoke_static_method(HPHP::String const&, HPHP::String const&, HPHP::Variant const&, bool) at php:0
  23. 22 HPHP::f_hphp_invoke_method(HPHP::Variant const&, HPHP::String const&, HPHP::String const&, HPHP::Variant const&) at php:0
  24. 23 HPHP::JIT::X64::BackEnd::enterTCHelper(unsigned char*, HPHP::JIT::TReqInfo&) at php:0
  25. 24 HPHP::JIT::MCGenerator::enterTC(unsigned char*, void*) at php:0
  26. 25 HPHP::JIT::MCGenerator::enterTCAfterPrologue(unsigned char*) at php:0
  27. 26 HPHP::ExecutionContext::enterVMAtFunc(HPHP::ActRec*, HPHP::ExecutionContext::StackArgsState) at php:0
  28. 27 HPHP::ExecutionContext::enterVM(HPHP::ActRec*, HPHP::ExecutionContext::StackArgsState, HPHP::Resumable*, HPHP::ObjectData*) at php:0
  29. 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
  30. 29 HPHP::ExecutionContext::invokeUnit(HPHP::TypedValue*, HPHP::Unit*) at php:0
  31. 30 ?? at php:0
  32. 31 ?? at php:0
  33. 32 HPHP::include_impl_invoke(HPHP::String const&, bool, char const*) at php:0
  34. 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
  35. 34 HPHP::hphp_invoke_simple(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) at php:0
  36. 35 ?? at php:0
  37. 36 HPHP::execute_program(int, char**) at php:0
  38. 37 HPHP::emulate_zend(int, char**) at php:0
  39. 38 main at php:0
  40. 39 __libc_start_main at /build/buildd/eglibc-2.19/csu/libc-start.c:321
  41. 40 ?? at php:0

Version: master
Severity: normal

Details

Reference
bz66942

Event Timeline

bzimport raised the priority of this task from to Needs Triage.
bzimport set Reference to bz66942.
bzimport added a subscriber: Unknown Object (MLST).
ori created this task.Jun 22 2014, 6:36 AM
ori added a comment.Jun 22 2014, 6:38 AM

(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.