Last modified: 2014-05-23 23:31:06 UTC

Wikimedia Bugzilla is closed!

Wikimedia migrated from Bugzilla to Phabricator. Bug reports are handled in Wikimedia Phabricator.
This static website is read-only and for historical purposes. It is not possible to log in and except for displaying bug reports and their history, links might be broken. See T67351, the corresponding Phabricator task for complete and up-to-date bug report information.
Bug 65351 - HHBC cache creation fails with SIGSEGV on osmium
HHBC cache creation fails with SIGSEGV on osmium
Status: RESOLVED WORKSFORME
Product: Wikimedia
Classification: Unclassified
Deployment systems (Other open bugs)
wmf-deployment
All All
: Normal normal (vote)
: ---
Assigned To: Nobody - You can work on this!
: hhvm
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2014-05-15 17:22 UTC by Bryan Davis
Modified: 2014-05-23 23:31 UTC (History)
5 users (show)

See Also:
Web browser: ---
Mobile Platform: ---
Assignee Huggle Beta Tester: ---


Attachments

Description Bryan Davis 2014-05-15 17:22:56 UTC
My prototype hhvm hhbc compilation script fails when run on osmium with a seg fault. This behavior was not seen with a similar testing script on the core-hhvm.eqiad.wfmlabs labs instance which is using hhvm from our apt repository.

Steps to reproduce:
* ssh osmium
* /home/bd808/scap-hhvm-compile

An example core file is saved as osmium:/home/bd808/core-hhvm-compile

Using gdb on the core file shows:

Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00000000015ce57e in HPHP::HHBBC::res::Func HPHP::HHBBC::Index::resolve_func_helper<boost::iterator_range<std::__detail::_Node_const_iterator<std::pair<HPHP::StringData const* const, HPHP::HHBBC::php::Func const*>, false, true> > >(boost::iterator_range<std::__detail::_Node_const_iterator<std::pair<HPHP::StringData const* const, HPHP::HHBBC::php::Func const*>, false, true> > const&, HPHP::StringData const*) const ()

gdb> bt
#0  0x00000000015ce57e in HPHP::HHBBC::res::Func HPHP::HHBBC::Index::resolve_func_helper<boost::iterator_range<std::__detail::_Node_const_iterator<std::pair<HPHP::StringData const* const, HPHP::HHBBC::php::Func const*>, false, true> > >(boost::iterator_range<std::__detail::_Node_const_iterator<std::pair<HPHP::StringData const* const, HPHP::HHBBC::php::Func const*>, false, true> > const&, HPHP::StringData const*) const ()
#1  0x00000000015c7e5b in HPHP::HHBBC::Index::resolve_func_fallback(HPHP::HHBBC::Context, HPHP::StringData const*, HPHP::StringData const*) const ()
#2  0x000000000155981a in HPHP::HHBBC::(anonymous namespace)::in(HPHP::HHBBC::ISS&, HPHP::HHBBC::bc::FPushFuncU const&) [clone .isra.636] ()
#3  0x000000000155daa2 in HPHP::HHBBC::(anonymous namespace)::dispatch(HPHP::HHBBC::ISS&, HPHP::HHBBC::Bytecode const&) ()
#4  0x000000000155f8df in HPHP::HHBBC::run(HPHP::HHBBC::Interp&, std::function<void (HPHP::HHBBC::php::Block&, HPHP::HHBBC::State const&)>) ()
#5  0x000000000152d514 in HPHP::HHBBC::(anonymous namespace)::do_analyze(HPHP::HHBBC::Index const&, HPHP::HHBBC::Context, HPHP::HHBBC::ClassAnalysis*) ()
#6  0x000000000152e57f in HPHP::HHBBC::analyze_class(HPHP::HHBBC::Index const&, HPHP::HHBBC::Context) ()
#7  0x000000000151c3d5 in folly::Optional<HPHP::HHBBC::(anonymous namespace)::WorkResult>* std::transform<__gnu_cxx::__normal_iterator<HPHP::HHBBC::(anonymous namespace)::WorkItem const*, std::vector<HPHP::HHBBC::(anonymous namespace)::WorkItem, std::allocator<HPHP::HHBBC::(anonymous namespace)::WorkItem> > >, folly::Optional<HPHP::HHBBC::(anonymous namespace)::WorkResult>*, HPHP::HHBBC::(anonymous namespace)::optimize(HPHP::HHBBC::Index&, HPHP::HHBBC::php::Program&)::{lambda()#2}::operator()() const::{lambda(HPHP::HHBBC::(anonymous namespace)::WorkItem const&)#1}>(__gnu_cxx::__normal_iterator<HPHP::HHBBC::(anonymous namespace)::WorkItem const*, std::vector<HPHP::HHBBC::(anonymous namespace)::WorkItem, std::allocator<HPHP::HHBBC::(anonymous namespace)::WorkItem> > >, HPHP::HHBBC::(anonymous namespace)::optimize(HPHP::HHBBC::Index&, HPHP::HHBBC::php::Program&)::{lambda()#2}::operator()() const::{lambda(HPHP::HHBBC::(anonymous namespace)::WorkItem const&)#1}, {lambda(HPHP::HHBBC::(anonymous namespace)::WorkItem const&)#1}, HPHP::HHBBC::(anonymous namespace)::optimize(HPHP::HHBBC::Index&, HPHP::HHBBC::php::Program&)::{lambda()#2}::operator()() const::{lambda(HPHP::HHBBC::(anonymous namespace)::WorkItem const&)#1}) ()
#8  0x000000000151c5a7 in std::thread::_Impl<std::_Bind_simple<std::vector<std::result_of<HPHP::HHBBC::(anonymous namespace)::optimize(HPHP::HHBBC::Index&, HPHP::HHBBC::php::Program&)::{lambda()#2}::operator()() const::{lambda(HPHP::HHBBC::(anonymous namespace)::WorkItem const&)#1} ({lambda()#2})>::type, std::allocator<HPHP::HHBBC::(anonymous namespace)::optimize(HPHP::HHBBC::Index&, HPHP::HHBBC::php::Program&)::{lambda()#2}::operator()() const::{lambda(HPHP::HHBBC::(anonymous namespace)::WorkItem const&)#1} ({lambda()#2})> > HPHP::HHBBC::parallel::map<HPHP::HHBBC::(anonymous namespace)::optimize(HPHP::HHBBC::Index&, HPHP::HHBBC::php::Program&)::{lambda()#2}::operator()() const::{lambda(HPHP::HHBBC::(anonymous namespace)::WorkItem const&)#1}, {lambda()#2}>({lambda(HPHP::HHBBC::(anonymous namespace)::WorkItem const&)#1}<std::result_of, std::allocator<std::result_of> > const&, std::vector)::{lambda()#1} ()> >::_M_run() ()
#9  0x00007f847ef03bf0 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#10 0x00007f847f15e182 in start_thread (arg=0x7f826a7e6700) at pthread_create.c:312
#11 0x00007f847e66b30d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
Comment 1 Bryan Davis 2014-05-15 17:25:27 UTC
Working version on core-hhvm:

    $ hhvm --version
    HipHop VM 3.0.1 (rel)
    Compiler: tags/HHVM-3.0.1-0-g97c0ac06000e060376fdac4a7970e954e77900d6
    Repo schema: a1146d49c5ba0d6db903beb3a4ed8a3766fef182

Crashing version on osmium:

    $ hhvm --version
    HipHop VM 3.1.0-dev (rel)
    Compiler: heads/master-0-ga433ab4363ff173b79c44f31281e805d49ee4512
    Repo schema: e27744b20b93f94ce8350cc8a1d5283932b3bb4d
Comment 2 Antoine "hashar" Musso (WMF) 2014-05-16 18:08:12 UTC
Maybe it can be bisected ?
Comment 3 Tim Starling 2014-05-19 00:17:47 UTC
This is apparently fixed in the latest HHVM master (and in my dev branch, which was recently rebased).

Note You need to log in before you can comment on or make changes to this bug.


Navigation
Links