Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade v8 to 7.7.200 #2624

Merged
merged 3 commits into from Jul 9, 2019

Conversation

@ry
Copy link
Collaborator

commented Jul 8, 2019

@ry ry referenced this pull request Jul 8, 2019

Closed

Upgrade V8 to 7.7.200 #2623

@ry ry force-pushed the upgrade_v8 branch from 38cf8a1 to 0a8661e Jul 9, 2019

@ry

This comment has been minimized.

Copy link
Collaborator Author

commented Jul 9, 2019

V8 is segfaulting with this:

> ./tools/build.py libdeno_test && ./target/debug/libdeno_test --gtest_filter=LibDenoTest.InitializesCorrectly
ninja: Entering directory `/Users/rld/src/deno/target/debug'
[4/4] LINK ./libdeno_test
Note: Google Test filter = LibDenoTest.InitializesCorrectly
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from LibDenoTest
[ RUN      ] LibDenoTest.InitializesCorrectly


#
# Fatal error in ./../../third_party/v8/src/heap/read-only-heap.cc, line 58
# Check failed: last_checksum == des_checksum (<unprintable> vs. <unprintable>).
#
#
#
#FailureMessage Object: 0x7ffee6265330
==== C stack trace ===============================

    0   libdeno_test                        0x000000010af81263 v8::base::debug::StackTrace::StackTrace() + 19
    1   libdeno_test                        0x000000010af9f239 v8::platform::(anonymous namespace)::PrintStackTrace() + 41
    2   libdeno_test                        0x000000010af783d6 V8_Fatal(char const*, int, char const*, ...) + 326
    3   libdeno_test                        0x0000000109dbd15d v8::internal::ReadOnlyHeap::SetUp(v8::internal::Isolate*, v8::internal::ReadOnlyDeserializer*) + 765
    4   libdeno_test                        0x0000000109dbbcc9 v8::internal::Isolate::Init(v8::internal::ReadOnlyDeserializer*, v8::internal::StartupDeserializer*) + 1769
    5   libdeno_test                        0x0000000109dbcbeb v8::internal::Isolate::InitWithSnapshot(v8::internal::ReadOnlyDeserializer*, v8::internal::StartupDeserializer*) + 43
    6   libdeno_test                        0x000000010a2a46c1 v8::internal::Snapshot::Initialize(v8::internal::Isolate*) + 513
    7   libdeno_test                        0x0000000109a1afaa v8::Isolate::Initialize(v8::Isolate*, v8::Isolate::CreateParams const&) + 330
    8   libdeno_test                        0x0000000109a1b56f v8::Isolate::New(v8::Isolate::CreateParams const&) + 31
    9   libdeno_test                        0x00000001099ac9cb deno_new + 539
    10  libdeno_test                        0x000000010999a389 LibDenoTest_InitializesCorrectly_Test::TestBody() + 361
    11  libdeno_test                        0x000000010aea7844 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) + 132
    12  libdeno_test                        0x000000010ae88dd2 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) + 114
    13  libdeno_test                        0x000000010ae88d13 testing::Test::Run() + 195
    14  libdeno_test                        0x000000010ae89887 testing::TestInfo::Run() + 215
    15  libdeno_test                        0x000000010ae8a568 testing::TestSuite::Run() + 248
    16  libdeno_test                        0x000000010ae93fb3 testing::internal::UnitTestImpl::RunAllTests() + 995
    17  libdeno_test                        0x000000010aeacbd4 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) + 132
    18  libdeno_test                        0x000000010ae93b52 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) + 114
    19  libdeno_test                        0x000000010ae93a35 testing::UnitTest::Run() + 197
    20  libdeno_test                        0x00000001099aacae main + 718
    21  libdyld.dylib                       0x00007fff715c03d5 start + 1
    22  ???                                 0x0000000000000002 0x0 + 2
Illegal instruction: 4

This debug-only assert that we're hitting was added recently
https://chromium-review.googlesource.com/c/v8/v8/+/1667415
https://chromium-review.googlesource.com/c/v8/v8/+/1660612

@kevinkassimo

This comment has been minimized.

Copy link
Contributor

commented Jul 9, 2019

@ry I believe we might want to explicitly turn off v8_enable_shared_ro_heap for now? I saw that previously is it turned on only under lite mode, which I don't think we have that flag enabled so we were not using shared read-only heap. After this release it is automatically turned on for us since we are not doing pointer compression.

@kevinkassimo

This comment has been minimized.

Copy link
Contributor

commented Jul 9, 2019

Also (after turning off shared ro heap)

./target/debug/libdeno_test
[==========] Running 29 tests from 2 test suites.
[----------] Global test environment set-up.
[----------] 22 tests from LibDenoTest
[ RUN      ] LibDenoTest.InitializesCorrectly
[       OK ] LibDenoTest.InitializesCorrectly (62 ms)
[ RUN      ] LibDenoTest.Snapshotter
[       OK ] LibDenoTest.Snapshotter (144 ms)
[ RUN      ] LibDenoTest.CanCallFunction
Hello world from foo[       OK ] LibDenoTest.CanCallFunction (61 ms)
[ RUN      ] LibDenoTest.ErrorsCorrectly


#
# Fatal error in ../../third_party/v8/src/api/api-inl.h, line 126
# Debug check failed: allow_empty_handle || that != nullptr.
#
#
#
#FailureMessage Object: 0x7ffeee474ae0
==== C stack trace ===============================

    0   libdeno_test                        0x0000000102d87d13 v8::base::debug::StackTrace::StackTrace() + 19
    1   libdeno_test                        0x0000000102da62f9 v8::platform::(anonymous namespace)::PrintStackTrace() + 41
    2   libdeno_test                        0x0000000102d7ee46 V8_Fatal(char const*, int, char const*, ...) + 326
    3   libdeno_test                        0x0000000102d7e975 v8::base::(anonymous namespace)::DefaultDcheckHandler(char const*, int, char const*) + 21
    4   libdeno_test                        0x00000001017d5b79 v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>) + 697
    5   libdeno_test                        0x00000001017a2196 deno::EncodeMessageAsObject(v8::Local<v8::Context>, v8::Local<v8::Message>) + 2422
    6   libdeno_test                        0x00000001017a2972 deno::EncodeMessageAsJSON(v8::Local<v8::Context>, v8::Local<v8::Message>) + 82
    7   libdeno_test                        0x000000010179f213 deno::HandleException(v8::Local<v8::Context>, v8::Local<v8::Value>) + 259
    8   libdeno_test                        0x000000010179eb35 deno::Execute(v8::Local<v8::Context>, char const*, char const*) + 341
    9   libdeno_test                        0x000000010179e930 deno_execute + 144
    10  libdeno_test                        0x000000010178c1a2 LibDenoTest_ErrorsCorrectly_Test::TestBody() + 162
    11  libdeno_test                        0x0000000102cac044 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) + 132
    12  libdeno_test                        0x0000000102c8d572 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) + 114
    13  libdeno_test                        0x0000000102c8d4b3 testing::Test::Run() + 195
    14  libdeno_test                        0x0000000102c8e027 testing::TestInfo::Run() + 215
    15  libdeno_test                        0x0000000102c8ed08 testing::TestSuite::Run() + 248
    16  libdeno_test                        0x0000000102c98763 testing::internal::UnitTestImpl::RunAllTests() + 995
    17  libdeno_test                        0x0000000102cb13d4 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) + 132
    18  libdeno_test                        0x0000000102c98302 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) + 114
    19  libdeno_test                        0x0000000102c981e5 testing::UnitTest::Run() + 197
    20  libdeno_test                        0x000000010179c37b main + 747
    21  libdyld.dylib                       0x00007fff6779d3d5 start + 1
Illegal instruction: 4

Cause:

(lldb) n
Process 23507 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = step over
    frame #0: 0x0000000100018156 libdeno_test`deno::EncodeMessageAsObject(context=<unavailable>, message=(val_ = 0x00000001040897b0)) at exceptions.cc:93 [opt]
   90  	      auto column = v8::Integer::New(isolate, frame->GetColumn());
   91  	      CHECK(frame_obj->Set(context, v8_str("line"), line).FromJust());
   92  	      CHECK(frame_obj->Set(context, v8_str("column"), column).FromJust());
-> 93  	      CHECK(frame_obj
   94  	                ->Set(context, v8_str("functionName"), frame->GetFunctionName())
   95  	                .FromJust());
   96  	      // scriptName can be empty in special conditions e.g. eval
Target 0: (libdeno_test) stopped.

ry added some commits Jul 9, 2019

@ry ry requested a review from piscisaureus Jul 9, 2019

@ry ry merged commit 52c0764 into master Jul 9, 2019

4 checks passed

Travis CI - Branch Build Passed
Details
Travis CI - Pull Request Build Passed
Details
continuous-integration/appveyor/pr AppVeyor build succeeded
Details
license/cla Contributor License Agreement is signed.
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
3 participants
You can’t perform that action at this time.