Last modified: 2014-06-27 17:45:03 UTC
Steps to reproduce: * ssh osmium * /home/bd808/scap-hhvm-compile Example core file in /tmp/hhbc-bd808-20140625T2108 Using gdb on the core file shows: Program terminated with signal SIGABRT, Aborted. #0 0x00007fd389858f79 in __GI_raise (sig=sig@entry=0x6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 56 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory. gdb> bt #0 0x00007fd389858f79 in __GI_raise (sig=sig@entry=0x6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #1 0x00007fd38985c388 in __GI_abort () at abort.c:89 #2 0x00007fd389851e36 in __assert_fail_base (fmt=0x7fd3899a3718 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x2ea0e58 "(attrs & AttrPersistent) || meth->getClassScope()", file=file@entry=0x2e9f9f8 "/srv/hhvm-dev/hphp/compiler/analysis/emitter.cpp", line=line@entry=0x1880, function=function@entry=0x2ea43c0 <HPHP::Compiler::buildMethodAttrs(std::shared_ptr<HPHP::MethodStatement>, HPHP::FuncEmitter*, bool, bool)::__PRETTY_FUNCTION__> "HPHP::Attr HPHP::Compiler::buildMethodAttrs(HPHP::MethodStatementPtr, HPHP::FuncEmitter*, bool, bool)") at assert.c:92 #3 0x00007fd389851ee2 in __GI___assert_fail (assertion=0x2ea0e58 "(attrs & AttrPersistent) || meth->getClassScope()", file=0x2e9f9f8 "/srv/hhvm-dev/hphp/compiler/analysis/emitter.cpp", line=0x1880, function=0x2ea43c0 <HPHP::Compiler::buildMethodAttrs(std::shared_ptr<HPHP::MethodStatement>, HPHP::FuncEmitter*, bool, bool)::__PRETTY_FUNCTION__> "HPHP::Attr HPHP::Compiler::buildMethodAttrs(HPHP::MethodStatementPtr, HPHP::FuncEmitter*, bool, bool)") at assert.c:101 #4 0x0000000001af222c in HPHP::Compiler::buildMethodAttrs (meth=..., fe=fe@entry=0x7fd22cfd5c00, top=top@entry=0x0, allowOverride=allowOverride@entry=0x0) at /srv/hhvm-dev/hphp/compiler/analysis/emitter.cpp:6272 #5 0x0000000001b2489d in HPHP::Compiler::EmitterVisitor::emitMethodMetadata (this=this@entry=0x7fd349bf5060, meth=..., useVars=useVars@entry=0x7fd219683aa0, top=top@entry=0x0) at /srv/hhvm-dev/hphp/compiler/analysis/emitter.cpp:6590 #6 0x0000000001b297c2 in HPHP::Compiler::EmitterVisitor::emitPostponedMeths (this=this@entry=0x7fd349bf5060) at /srv/hhvm-dev/hphp/compiler/analysis/emitter.cpp:6404 #7 0x0000000001b2af55 in HPHP::Compiler::EmitterVisitor::visit (this=this@entry=0x7fd349bf5060, file=...) at /srv/hhvm-dev/hphp/compiler/analysis/emitter.cpp:2616 #8 0x0000000001b2b78f in HPHP::Compiler::emitHHBCUnitEmitter (ar=..., fsp=..., md5=...) at /srv/hhvm-dev/hphp/compiler/analysis/emitter.cpp:8209 #9 0x0000000001b2bded in HPHP::Compiler::emitHHBCVisitor (ar=..., fsp=fsp@entry=...) at /srv/hhvm-dev/hphp/compiler/analysis/emitter.cpp:8592 #10 0x0000000001b3a3c1 in HPHP::Compiler::EmitterWorker::doJob (this=0x7fd1f7a41900, job=...) at /srv/hhvm-dev/hphp/compiler/analysis/emitter.cpp:8656 #11 0x0000000001b390fd in HPHP::JobQueueWorker<HPHP::hphp_raw_ptr<HPHP::FileScope>, void*, true, true, HPHP::detail::NoDropCachePolicy>::start (this=0x7fd1f7a41900) at /srv/hhvm-dev/hphp/util/job-queue.h:409 #12 0x0000000001b2ce0e in HPHP::AsyncFunc<HPHP::Compiler::EmitterWorker>::run_ (obj=<optimized out>) at /srv/hhvm-dev/hphp/util/async-func.h:205 #13 0x0000000001e56011 in HPHP::AsyncFuncImpl::threadFuncImpl (this=this@entry=0x7fd1ed998b00) at /srv/hhvm-dev/hphp/util/async-func.cpp:131 #14 0x0000000001e56263 in HPHP::AsyncFuncImpl::ThreadFunc (obj=0x7fd1ed998b00) at /srv/hhvm-dev/hphp/util/async-func.cpp:51 #15 0x00007fd38a410182 in start_thread (arg=0x7fd349bff700) at pthread_create.c:312 #16 0x00007fd38991d30d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 $ hhvm --version HipHop VM 3.2.0-dev (dbg) Compiler: remotes/origin/HEAD-0-g3db0539780dd1d87c6f8588e650ff2a5d989ac9c Repo schema: a8164238ec149a9daf909380da19f2cfc874235e
Apparently related to https://github.com/facebook/hhvm/pull/2991#issuecomment-47136119
[17:02] <TimStarling> maybe it's not possible to use closures at all in a systemlib? [17:03] <simon_w|work> TimStarling, correct [17:04] <simon_w|work> danslo, can't seem to break on asxml [17:04] <TimStarling> is there a good reason for that? should I stop reading the code now? [17:05] <simon_w|work> TimStarling, there's a PR to add it that's hitting some bumps [17:06] <simon_w|work> It's to do with when the Closure class is loaded, IIRC [17:07] <TimStarling> ok, good enough for me I guess [17:07] < joelm> yeah. We had to forgo that pull request for now do to it causing problems in repo mode. [17:08] < joelm> It was a very nice pull request, tbh [17:08] < joelm> https://github.com/facebook/hhvm/pull/2471 [17:10] <TimStarling> you know I mentioned in my commit message on PR 2991 that I was using closures in a systemlib [17:12] < joelm> TimStarling: :( [17:12] < joelm> Didn't even put two and two together there.
Fixed in https://github.com/tstarling/hiphop-php/commit/8b6a194ebe37dfb96c768375e9767248e94395f8