{"action":"closed","issue":{"url":"https://api.github.com/repos/facebook/hhvm/issues/4934","labels_url":"https://api.github.com/repos/facebook/hhvm/issues/4934/labels{/name}","comments_url":"https://api.github.com/repos/facebook/hhvm/issues/4934/comments","events_url":"https://api.github.com/repos/facebook/hhvm/issues/4934/events","html_url":"https://github.com/facebook/hhvm/issues/4934","id":59572088,"number":4934,"title":"Master asserts when using composer","user":{"login":"fredemmott","id":360927,"avatar_url":"https://avatars.githubusercontent.com/u/360927?v=3","gravatar_id":"","url":"https://api.github.com/users/fredemmott","html_url":"https://github.com/fredemmott","followers_url":"https://api.github.com/users/fredemmott/followers","following_url":"https://api.github.com/users/fredemmott/following{/other_user}","gists_url":"https://api.github.com/users/fredemmott/gists{/gist_id}","starred_url":"https://api.github.com/users/fredemmott/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fredemmott/subscriptions","organizations_url":"https://api.github.com/users/fredemmott/orgs","repos_url":"https://api.github.com/users/fredemmott/repos","events_url":"https://api.github.com/users/fredemmott/events{/privacy}","received_events_url":"https://api.github.com/users/fredemmott/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/facebook/hhvm/labels/crash","name":"crash","color":"e63737"}],"state":"closed","locked":false,"assignee":{"login":"mxw","id":1013739,"avatar_url":"https://avatars.githubusercontent.com/u/1013739?v=3","gravatar_id":"","url":"https://api.github.com/users/mxw","html_url":"https://github.com/mxw","followers_url":"https://api.github.com/users/mxw/followers","following_url":"https://api.github.com/users/mxw/following{/other_user}","gists_url":"https://api.github.com/users/mxw/gists{/gist_id}","starred_url":"https://api.github.com/users/mxw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mxw/subscriptions","organizations_url":"https://api.github.com/users/mxw/orgs","repos_url":"https://api.github.com/users/mxw/repos","events_url":"https://api.github.com/users/mxw/events{/privacy}","received_events_url":"https://api.github.com/users/mxw/received_events","type":"User","site_admin":false},"milestone":null,"comments":6,"created_at":"2015-03-02T23:51:44Z","updated_at":"2015-03-09T20:18:23Z","closed_at":"2015-03-09T20:18:23Z","body":"https://getcomposer.org/composer.phar\r\n0ba6ee93941364eeccf5a3ec9fb1fa52  composer.phar\r\n\r\nHHVM is master @ 0515a27403f01ef6557588d5f52a05b426dfe5ae\r\n\r\n```\r\nfred@hhvm-cont-ossbench:~$ hhvm/hphp/hhvm/hhvm composer.phar --help\r\n\r\nAssertion failure: /home/fred/hhvm/hphp/runtime/vm/jit/refcount-opts.cpp:588: HPHP::jit::{anonymous}::SinkPointsMap HPHP::jit::{anonymous}::SinkPointAnalyzer::find(): assertion `valState.second.realCount == 0 && valState.second.optDelta() == 0' failed.\r\nRegion (1 blocks):\r\nBlock -6 @200 length 1 initSpOff 0\r\n    200  FPushClsMethodD 1 \"mapPhar\" \"Phar\"\r\nArcs:\r\nSide-exiting Blocks:\r\n\r\n\r\nUnconsumed reference(s) leaving B7\r\n(real, opt) = ( 1,  1) - [] | (20) t9:Bottom = LdClsMethodCacheCls<Phar::mapPhar>\r\nlive frames (unordered):\r\n(00) t0:Bottom = DefFP: <no $this>\r\npre-live frames:\r\nmain this: t9:Bottom current this: t9:Bottom\r\n\r\n\r\n-----------------------------------RegionDesc-----------------------------------\r\nRegion (1 blocks):\r\nBlock -6 @200 length 1 initSpOff 0\r\n    200  FPushClsMethodD 1 \"mapPhar\" \"Phar\"\r\nArcs:\r\nSide-exiting Blocks:\r\n\r\n\r\n\r\n-------------------------------------IRUnit-------------------------------------\r\ndigraph G {\r\nB0 -> B1\r\nB1 -> B8; B1 -> B6 [color=green]\r\nB8 -> B7 [color=cyan]\r\nB6 -> B10 [color=green]; B6 -> B9 [color=blue]\r\nB10 -> B11 [color=green]; B10 -> B2 [color=green]\r\nB11 -> B7 [color=cyan]\r\nB2 -> B5 [color=green]; B2 -> B3 [color=blue]\r\nB5 -> B4 [color=cyan]\r\n}\r\n\r\n B0:\r\nPseudo-main at 0\r\nmaxStackCells: 6\r\nnumLocals: 0\r\nnumIterators: 0\r\n    --- bc 200, spOff 0 ()\r\n 200: FPushClsMethodD 1 \"mapPhar\" \"Phar\"\r\n    (00) t0:Bottom = DefFP\r\n    (01) t1:Bottom = DefSP<0> t0:Bottom\r\n    (02) Jmp -> B1\r\n  no fallthrough\r\n\r\n B1: (preds B0)\r\n    (03) EndGuards\r\n    (04) t2:{Obj|Cctx} = LdCtx t0:Bottom\r\n    --- bc 200, spOff 0 () [profTrans=-6]\r\n 200: FPushClsMethodD 1 \"mapPhar\" \"Phar\"\r\n    (11) t4:Bottom = LdClsMethodCacheFunc<Phar::mapPhar>\r\n    (12) t5:Bottom = CheckNonNull t4:Bottom -> B6<Unlikely>\r\n  -> B8\r\n\r\n B8: (preds B1)\r\n    (13) Jmp t5:Bottom -> B7\r\n  no fallthrough\r\n\r\n B7: (preds B11 B8)\r\n         t8:Bottom = phi t7:Bottom@B11<Unlikely>, t5:Bottom@B8\r\n    (19) t8:Bottom = DefLabel\r\n    (20) t9:Bottom = LdClsMethodCacheCls<Phar::mapPhar>\r\n    (21) SpillFrame<-3,1> t1:Bottom, t8:Bottom, t9:Bottom\r\n    --- bc 210, spOff 3 () [profTrans=-6]\r\n 210: String \"composer.phar\"\r\n    (22) t10:Bottom = AdjustSP<IrSpOff -3> t1:Bottom\r\n    (23) ReqBindJmp<210,0> t10:Bottom\r\n  no fallthrough\r\n\r\n------------------------cold blocks-------------------------\r\n B6<Unlikely>: (preds B1)\r\n    --- bc 200, spOff 0 () [profTrans=-6]\r\n 200: FPushClsMethodD 1 \"mapPhar\" \"Phar\"\r\n    (16) t6:Bottom = LookupClsMethodCache<Phar::mapPhar> t0:Bottom -> B9<Catch>\r\n  -> B10<Unlikely>\r\n\r\n B10<Unlikely>: (preds B6)\r\n    (17) t7:Bottom = CheckNonNull t6:Bottom -> B2<Unlikely>\r\n  -> B11<Unlikely>\r\n\r\n B11<Unlikely>: (preds B10)\r\n    (18) Jmp t7:Bottom -> B7\r\n  no fallthrough\r\n\r\n B2<Unlikely>: (preds B10)\r\n    (07) InterpOne<FPushClsMethodD: spOff:0, bcOff:200, popped:0, pushed:3> t1:Bottom, t0:Bottom -> B3<Catch>\r\n  -> B5<Unlikely>\r\n\r\n B5<Unlikely>: (preds B2)\r\n    (10) Jmp -> B4<Unlikely>\r\n  no fallthrough\r\n\r\n B4<Unlikely>: (preds B5)\r\n    --- bc 210, spOff 3 () [profTrans=-6]\r\n 210: String \"composer.phar\"\r\n    (08) t3:Bottom = AdjustSP<IrSpOff -3> t1:Bottom\r\n    (09) ReqBindJmp<210,0> t3:Bottom\r\n  no fallthrough\r\n\r\n-----------------------frozen blocks------------------------\r\n B3<Catch>: (preds B2)\r\n    --- bc 200, spOff 0 () [profTrans=-6]\r\n 200: FPushClsMethodD 1 \"mapPhar\" \"Phar\"\r\n    (05) BeginCatch\r\n    (06) EndCatch<IrSpOff 0> t0:Bottom, t1:Bottom\r\n  no fallthrough\r\n\r\n B9<Catch>: (preds B6)\r\n    (14) BeginCatch\r\n    (15) EndCatch<IrSpOff 0> t0:Bottom, t1:Bottom\r\n  no fallthrough\r\n\r\n\r\nCore dumped: Aborted\r\nStack trace in /tmp/stacktrace.13010.log\r\nAborted (core dumped)\r\nfred@hhvm-cont-ossbench:~$ cat /tmp/stacktrace.13010.log\r\nHost: hhvm-cont-ossbench\r\nProcessID: 13010\r\nThreadID: 7fb118399640\r\nThreadPID: 13010\r\nName: hhvm/hphp/hhvm/hhvm\r\nType: Aborted\r\nRuntime: hhvm\r\nVersion: heads/master-0-g0515a27403f01ef6557588d5f52a05b426dfe5ae\r\nDebuggerCount: 0\r\n\r\n-------------------------------------IRUnit-------------------------------------\r\n: digraph G {\r\nB0 -> B1\r\nB1 -> B8; B1 -> B6 [color=green]\r\nB8 -> B7 [color=cyan]\r\nB6 -> B10 [color=green]; B6 -> B9 [color=blue]\r\nB10 -> B11 [color=green]; B10 -> B2 [color=green]\r\nB11 -> B7 [color=cyan]\r\nB2 -> B5 [color=green]; B2 -> B3 [color=blue]\r\nB5 -> B4 [color=cyan]\r\n}\r\n\r\n B0:\r\nPseudo-main at 0\r\nmaxStackCells: 6\r\nnumLocals: 0\r\nnumIterators: 0\r\n    --- bc 200, spOff 0 ()\r\n 200: FPushClsMethodD 1 \"mapPhar\" \"Phar\"\r\n    (00) t0:Bottom = DefFP\r\n    (01) t1:Bottom = DefSP<0> t0:Bottom\r\n    (02) Jmp -> B1\r\n  no fallthrough\r\n\r\n B1: (preds B0)\r\n    (03) EndGuards\r\n    (04) t2:{Obj|Cctx} = LdCtx t0:Bottom\r\n    --- bc 200, spOff 0 () [profTrans=-6]\r\n 200: FPushClsMethodD 1 \"mapPhar\" \"Phar\"\r\n    (11) t4:Bottom = LdClsMethodCacheFunc<Phar::mapPhar>\r\n    (12) t5:Bottom = CheckNonNull t4:Bottom -> B6<Unlikely>\r\n  -> B8\r\n\r\n B8: (preds B1)\r\n    (13) Jmp t5:Bottom -> B7\r\n  no fallthrough\r\n\r\n B7: (preds B11 B8)\r\n         t8:Bottom = phi t7:Bottom@B11<Unlikely>, t5:Bottom@B8\r\n    (19) t8:Bottom = DefLabel\r\n    (20) t9:Bottom = LdClsMethodCacheCls<Phar::mapPhar>\r\n    (21) SpillFrame<-3,1> t1:Bottom, t8:Bottom, t9:Bottom\r\n    --- bc 210, spOff 3 () [profTrans=-6]\r\n 210: String \"composer.phar\"\r\n    (22) t10:Bottom = AdjustSP<IrSpOff -3> t1:Bottom\r\n    (23) ReqBindJmp<210,0> t10:Bottom\r\n  no fallthrough\r\n\r\n------------------------cold blocks-------------------------\r\n B6<Unlikely>: (preds B1)\r\n    --- bc 200, spOff 0 () [profTrans=-6]\r\n 200: FPushClsMethodD 1 \"mapPhar\" \"Phar\"\r\n    (16) t6:Bottom = LookupClsMethodCache<Phar::mapPhar> t0:Bottom -> B9<Catch>\r\n  -> B10<Unlikely>\r\n\r\n B10<Unlikely>: (preds B6)\r\n    (17) t7:Bottom = CheckNonNull t6:Bottom -> B2<Unlikely>\r\n  -> B11<Unlikely>\r\n\r\n B11<Unlikely>: (preds B10)\r\n    (18) Jmp t7:Bottom -> B7\r\n  no fallthrough\r\n\r\n B2<Unlikely>: (preds B10)\r\n    (07) InterpOne<FPushClsMethodD: spOff:0, bcOff:200, popped:0, pushed:3> t1:Bottom, t0:Bottom -> B3<Catch>\r\n  -> B5<Unlikely>\r\n\r\n B5<Unlikely>: (preds B2)\r\n    (10) Jmp -> B4<Unlikely>\r\n  no fallthrough\r\n\r\n B4<Unlikely>: (preds B5)\r\n    --- bc 210, spOff 3 () [profTrans=-6]\r\n 210: String \"composer.phar\"\r\n    (08) t3:Bottom = AdjustSP<IrSpOff -3> t1:Bottom\r\n    (09) ReqBindJmp<210,0> t3:Bottom\r\n  no fallthrough\r\n\r\n-----------------------frozen blocks------------------------\r\n B3<Catch>: (preds B2)\r\n    --- bc 200, spOff 0 () [profTrans=-6]\r\n 200: FPushClsMethodD 1 \"mapPhar\" \"Phar\"\r\n    (05) BeginCatch\r\n    (06) EndCatch<IrSpOff 0> t0:Bottom, t1:Bottom\r\n  no fallthrough\r\n\r\n B9<Catch>: (preds B6)\r\n    (14) BeginCatch\r\n    (15) EndCatch<IrSpOff 0> t0:Bottom, t1:Bottom\r\n  no fallthrough\r\n\r\n-----------------------------------RegionDesc-----------------------------------\r\n: Region (1 blocks):\r\nBlock -6 @200 length 1 initSpOff 0\r\n    200  FPushClsMethodD 1 \"mapPhar\" \"Phar\"\r\nArcs:\r\nSide-exiting Blocks:\r\n\r\n\r\nThreadType: CLI\r\nArguments: composer.phar --help\r\nAssertion Message: Region (1 blocks):\r\nBlock -6 @200 length 1 initSpOff 0\r\n    200  FPushClsMethodD 1 \"mapPhar\" \"Phar\"\r\nArcs:\r\nSide-exiting Blocks:\r\n\r\n\r\nUnconsumed reference(s) leaving B7\r\n(real, opt) = ( 1,  1) - [] | (20) t9:Bottom = LdClsMethodCacheCls<Phar::mapPhar>\r\nlive frames (unordered):\r\n(00) t0:Bottom = DefFP: <no $this>\r\npre-live frames:\r\nmain this: t9:Bottom current this: t9:Bottom\r\n\r\nAssertion Failure: /home/fred/hhvm/hphp/runtime/vm/jit/refcount-opts.cpp:588: HPHP::jit::{anonymous}::SinkPointsMap HPHP::jit::{anonymous}::SinkPointAnalyzer::find(): assertion `valState.second.realCount == 0 && valState.second.optDelta() == 0' failed.\r\n\r\n# 0  gsignal at /lib/x86_64-linux-gnu/libc.so.6:0\r\n# 1  abort at /lib/x86_64-linux-gnu/libc.so.6:0\r\n# 2  HPHP::assert_fail(char const*, char const*, unsigned int, char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) at hhvm/hphp/hhvm/hhvm:0\r\n# 3  HPHP::jit::optimizeRefcounts(HPHP::jit::IRUnit&, HPHP::jit::FrameStateMgr&&) at hhvm/hphp/hhvm/hhvm:0\r\n# 4  HPHP::jit::optimize(HPHP::jit::IRUnit&, HPHP::jit::IRBuilder&, HPHP::jit::TransKind) at hhvm/hphp/hhvm/hhvm:0\r\n# 5  HPHP::jit::MCGenerator::traceCodeGen(HPHP::jit::HTS&) at hhvm/hphp/hhvm/hhvm:0\r\n# 6  HPHP::jit::translateRegion(HPHP::jit::HTS&, HPHP::jit::RegionDesc const&, HPHP::hphp_hash_set<HPHP::jit::ProfSrcKey, HPHP::jit::ProfSrcKey::Hasher, std::equal_to<HPHP::jit::ProfSrcKey> >&, HPHP::jit::TransFlags, std::vector<HPHP::jit::RegionDesc::TypePred, std::allocator<HPHP::jit::RegionDesc::TypePred> >&) at hhvm/hphp/hhvm/hhvm:0\r\n# 7  HPHP::jit::MCGenerator::translateWork(HPHP::jit::TranslArgs const&) at hhvm/hphp/hhvm/hhvm:0\r\n# 8  HPHP::jit::MCGenerator::translate(HPHP::jit::TranslArgs const&) at hhvm/hphp/hhvm/hhvm:0\r\n# 9  HPHP::jit::MCGenerator::retranslate(HPHP::jit::TranslArgs const&) at hhvm/hphp/hhvm/hhvm:0\r\n# 10 HPHP::jit::MCGenerator::createTranslation(HPHP::jit::TranslArgs const&) at hhvm/hphp/hhvm/hhvm:0\r\n# 11 HPHP::jit::MCGenerator::bindJmpccFirst(unsigned char*, HPHP::SrcKey, HPHP::SrcKey, bool, bool&) at hhvm/hphp/hhvm/hhvm:0\r\n# 12 MCGenerator_handleServiceRequest at hhvm/hphp/hhvm/hhvm:0\r\n# 13 handleSRHelper at hhvm/hphp/hhvm/hhvm:0\r\n# 14 enterTCExit at hhvm/hphp/hhvm/hhvm:0\r\n# 15 HPHP::jit::x64::BackEnd::enterTCHelper(unsigned char*, HPHP::ActRec*) at hhvm/hphp/hhvm/hhvm:0\r\n# 16 HPHP::jit::MCGenerator::enterTC(unsigned char*, HPHP::ActRec*) at hhvm/hphp/hhvm/hhvm:0\r\n# 17 HPHP::ExecutionContext::invokeFunc(HPHP::TypedValue*, HPHP::Func const*, HPHP::Variant const&, HPHP::ObjectData*, HPHP::Class*, HPHP::VarEnv*, HPHP::StringData*, HPHP::ExecutionContext::InvokeFlags) at hhvm/hphp/hhvm/hhvm:0\r\n# 18 HPHP::ExecutionContext::invokeUnit(HPHP::TypedValue*, HPHP::Unit const*) at hhvm/hphp/hhvm/hhvm:0\r\n# 19 HPHP::invoke_file(HPHP::String const&, bool, char const*) at builtin-functions.cpp:0\r\n# 20 HPHP::include_impl_invoke(HPHP::String const&, bool, char const*) at hhvm/hphp/hhvm/hhvm:0\r\n# 21 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 hhvm/hphp/hhvm/hhvm:0\r\n# 22 HPHP::hphp_invoke_simple(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) at hhvm/hphp/hhvm/hhvm:0\r\n# 23 HPHP::execute_program_impl(int, char**) at program-functions.cpp:0\r\n# 24 HPHP::execute_program(int, char**) at hhvm/hphp/hhvm/hhvm:0\r\n# 25 main at hhvm/hphp/hhvm/hhvm:0\r\n# 26 __libc_start_main at /lib/x86_64-linux-gnu/libc.so.6:0\r\n# 27 _start at hhvm/hphp/hhvm/hhvm:0\r\n\r\nPHP Stacktrace:\r\n```"}}