Page MenuHomePhabricator

Create an HHVM 3.6.0 package, adding Tim's streaming patch
Closed, ResolvedPublic

Description

This is needed for including Tim's patch in T91468, which is in itself needed for the imagescalers HHVM migration.

Event Timeline

Joe claimed this task.
Joe raised the priority of this task from to High.
Joe updated the task description. (Show Details)
Joe added subscribers: Matanya, Ricordisamoa, bd808 and 17 others.

This has been added to Roadmap, per roadmap policy please move it to the appropriate column in the roadmap within the next couple of weeks. Thanks!

Joe moved this task from March 16-20 to March 23-27 on the Roadmap board.

(Tag was inherited and not intentionally added, removing.)

@tstarling, hhvm segfaults with your patch (which applies cleanly btw on HHVM 3.6.1) when running any test, example:

Host: hhvm-test
ProcessID: 17358
ThreadID: 7f454ec3bd00
ThreadPID: 17358
Name: unknown program
Type: Segmentation fault
Runtime: hhvm
Version: heads/master_build-0-ga0458e4ffffb78c0ad5f1d5052275473f5fbc35c
DebuggerCount: 0

Arguments: hphp/test/quick/cgetm_hee.php
ThreadType: CLI

# 0  bt_handler at /usr/src/oblivian/debs/hhvm/hphp/runtime/base/crash-reporter.cpp:82
# 1  HPHP::vm_decode_function(HPHP::Variant const&, HPHP::ActRec*, bool, HPHP::ObjectData*&, HPHP::Class*&, HPHP::StringData*&, bool) at /usr/src/oblivian/debs/hhvm/hphp/util/low-ptr.h:77
# 2  HPHP::vm_call_user_func(HPHP::Variant const&, HPHP::Variant const&, bool) at /usr/src/oblivian/debs/hhvm/hphp/runtime/base/builtin-functions.cpp:351
# 3  HPHP::ExecutionContext::obFlush() at /usr/src/oblivian/debs/hhvm/hphp/runtime/base/type-variant.h:264
# 4  HPHP::ExecutionContext::onShutdownPreSend() at /usr/include/c++/4.8/bits/stl_list.h:873
# 5  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 /usr/src/oblivian/debs/hhvm/hphp/runtime/base/program-functions.cpp:1947
# 6  HPHP::hphp_invoke_simple(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) at /usr/src/oblivian/debs/hhvm/hphp/runtime/base/type-variant.h:1087
# 7  execute_program_impl at /usr/src/oblivian/debs/hhvm/hphp/runtime/base/program-functions.cpp:1621
# 8  HPHP::execute_program(int, char**) at /usr/src/oblivian/debs/hhvm/hphp/runtime/base/program-functions.cpp:1021
# 9  main at /usr/src/oblivian/debs/hhvm/hphp/hhvm/main.cpp:60
# 10 __libc_start_main at /build/buildd/eglibc-2.19/csu/libc-start.c:321
# 11 _start at ./hphp/hhvm/hhvm:0

Maybe this is related to being run from the cli?

the package is created and running since friday in beta on one host.

If I don't see any really worrying sign of problems, I'll install it across all of beta today, then to the HHVM imagescaler tomorrow. We can get it to the canary clusters after that.

In deployment-mediawiki01 logs I find a few occurrences of core dumps, and inspecting those I find

message: Attempted to emit 6 byte(s) into a 9 byte DataBlock with 0 bytes available. This almost certainly means the TC is full. If this is the case, increasing Eval.JitASize, Eval.JitAColdSize, Eval.JitAFrozenSize and Eval.JitGlobalDataSize in the configuration file when running this script or application should fix this problem.

so it's probably needed to raise the TC sizes with HHVM 3.6

Change 207737 had a related patch set uploaded (by Giuseppe Lavagetto):
hhvm: make base_jit_size configurable

https://gerrit.wikimedia.org/r/207737

Change 207737 merged by Giuseppe Lavagetto:
hhvm: make base_jit_size configurable

https://gerrit.wikimedia.org/r/207737

The change in jit size had a positive effect in beta, where it prevented hhvm from crashing.