Thank you so much for the help that has been provided so far. Sadly, I 
tried both of these suggestions without success. 

First, I removed all of the build arguments except:

is_debug = true
target_cpu = "x64"
v8_monolithic = true
v8_enable_i18n_support = false

I built this with much the same results. I also duplicated this problem on 
macOS with debug. (Release works fine on both platforms.)

I also tried setting "use_custom_libcxx = false", but we use libc++ (the 
one shipped with clang) on Linux and macOS. I couldn't find a way to tell 
v8 to set -stdlib libc++ without it also wanting that to be the custom one 
v8 compiles. If I set this value to false then the flag is omitted and it 
picks up libstdc++ by default, which results in a lot of link errors.

My colleague and I have managed to duplicate this in the most trivial 
hello-world program, which just initializes the engine and creates an 
isolate.

The interesting thing is that the d8 app created by the v8 build is fine. 
It is only applications that link against the v8 monolith outside the v8 
build that experience the problem. We also accidentally noted that if we 
initialize the engine twice, the problem goes away.

As I say, this wasn't a problem in 7.2, but in 7.3+ it's happening with 
perfect reproducibility. For the record, here is the backtrace:

#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007ffff7b5a535 in __GI_abort () at abort.c:79
#2  0x00007ffff7bc1726 in __libc_message (action=action@entry=do_abort, 
fmt=fmt@entry=0x7ffff7ce7952 "%s\n") at ../sysdeps/posix/libc_fatal.c:181
#3  0x00007ffff7bc859a in malloc_printerr (str=str@entry=0x7ffff7ce5a9b 
"free(): invalid pointer") at malloc.c:5352
#4  0x00007ffff7bca3cc in _int_free (av=<optimized out>, p=<optimized out>, 
have_lock=<optimized out>) at malloc.c:4181
#5  0x0000000004da70e5 in __do_call () at 
../../buildtools/third_party/libc++/trunk/include/new:319
#6  __do_deallocate_handle_size () at 
../../buildtools/third_party/libc++/trunk/include/new:277
#7  __do_deallocate_handle_size_align () at 
../../buildtools/third_party/libc++/trunk/include/new:247
#8  __libcpp_deallocate () at 
../../buildtools/third_party/libc++/trunk/include/new:325
#9  deallocate () at 
../../buildtools/third_party/libc++/trunk/include/memory:1816
#10 deallocate () at 
../../buildtools/third_party/libc++/trunk/include/memory:1554
#11 ~basic_string () at 
../../buildtools/third_party/libc++/trunk/include/string:2138
#12 Print () at ../../src/code-stub-assembler.cc:13702
#13 0x00000000051e254d in LoadKeyValuePairNoSideEffects () at 
gen/torque-generated/builtins-collections-from-dsl-gen.cc:533
#14 0x0000000004cfc7e1 in AddConstructorEntry () at 
../../src/builtins/builtins-collections-gen.cc:163
#15 0x0000000004d10fb6 in operator() () at 
../../src/builtins/builtins-collections-gen.cc:270
#16 __invoke<(lambda at 
../../src/builtins/builtins-collections-gen.cc:267:22) &, 
v8::internal::compiler::Node *> () at 
../../buildtools/third_party/libc++/trunk/include/type_traits:4399
#17 __call<(lambda at 
../../src/builtins/builtins-collections-gen.cc:267:22) &, 
v8::internal::compiler::Node *> () at 
../../buildtools/third_party/libc++/trunk/include/__functional_base:348
#18 operator() () at 
../../buildtools/third_party/libc++/trunk/include/functional:1531
#19 __call_impl<std::__1::__function::__alloc_func<(lambda at 
../../src/builtins/builtins-collections-gen.cc:267:22), 
std::__1::allocator<(lambda at 
../../src/builtins/builtins-collections-gen.cc:267:22)>, void 
(v8::internal::compiler::Node *)> > () at 
../../buildtools/third_party/libc++/trunk/include/functional:2014
#20 0x0000000004d76fb1 in operator() () at 
../../buildtools/third_party/libc++/trunk/include/functional:2127
#21 operator() () at 
../../buildtools/third_party/libc++/trunk/include/functional:2351
#22 BuildFastLoop () at ../../src/code-stub-assembler.cc:10997
#23 0x0000000004cfd8e0 in BuildFastLoop () at 
../../src/code-stub-assembler.h:3062
#24 AddConstructorEntriesFromFastJSArray () at 
../../src/builtins/builtins-collections-gen.cc:278
#25 0x0000000004cfcd55 in AddConstructorEntries () at 
../../src/builtins/builtins-collections-gen.cc:207
#26 0x0000000004cfeebf in GenerateConstructor () at 
../../src/builtins/builtins-collections-gen.cc:416
#27 0x0000000004cff596 in GenerateMapConstructorImpl () at 
../../src/builtins/builtins-collections-gen.cc:740
#28 0x0000000004cff3ea in Generate_MapConstructor () at 
../../src/builtins/builtins-collections-gen.cc:734
#29 0x0000000004c6b147 in BuildWithCodeStubAssemblerJS () at 
../../src/builtins/setup-builtins-internal.cc:179
#30 SetupBuiltinsInternal () at 
../../src/builtins/setup-builtins-internal.cc:353
#31 0x0000000004c62687 in SetupBuiltins () at 
../../src/setup-isolate-full.cc:18
#32 0x0000000004395524 in Init () at ../../src/isolate.cc:3394
#33 0x0000000004394c4d in v8::internal::Isolate::InitWithoutSnapshot() () 
at ../../src/isolate.cc:3284
#34 0x0000000003f50007 in Initialize () at ../../src/api.cc:8211
#35 0x0000000003f5055f in New () at ../../src/api.cc:8223
#36 0x0000000003eb369c in hiram::js::isolate::isolate (this=0x7fffffffcf88) 
at ../../../../../engine/src/js/isolate.cpp:20
#37 0x0000000003dae967 in ____C_A_T_C_H____T_E_S_T____6 () at 
../../../../../engine/test/test_element_node.cpp:62
#38 0x0000000003d01b33 in Catch::TestInvokerAsFunction::invoke 
(this=0x7677650) at 
../../../../../.mm/linux/amd64/debug/include/catch2/catch.hpp:11841
#39 0x0000000003cfc6d6 in Catch::TestCase::invoke (this=0x76dfe60) at 
../../../../../.mm/linux/amd64/debug/include/catch2/catch.hpp:11742
#40 0x0000000003cfc60a in Catch::RunContext::invokeActiveTestCase 
(this=0x7fffffffd818) at 
../../../../../.mm/linux/amd64/debug/include/catch2/catch.hpp:10601
#41 0x0000000003cfb164 in Catch::RunContext::runCurrentTest 
(this=0x7fffffffd818, redirectedCout=..., redirectedCerr=...) at 
../../../../../.mm/linux/amd64/debug/include/catch2/catch.hpp:10574
#42 0x0000000003cfa4fc in Catch::RunContext::runTest (this=0x7fffffffd818, 
testCase=...) at 
../../../../../.mm/linux/amd64/debug/include/catch2/catch.hpp:10344
#43 0x0000000003cfe9fd in Catch::(anonymous namespace)::runTests 
(config=...) at 
../../../../../.mm/linux/amd64/debug/include/catch2/catch.hpp:10903
#44 0x0000000003cfe4b2 in Catch::Session::runInternal (this=0x7fffffffdb90) 
at ../../../../../.mm/linux/amd64/debug/include/catch2/catch.hpp:11098
#45 0x0000000003cfe22b in Catch::Session::run (this=0x7fffffffdb90) at 
../../../../../.mm/linux/amd64/debug/include/catch2/catch.hpp:11055
#46 0x0000000003d2d54a in Catch::Session::run<char> (this=0x7fffffffdb90, 
argc=1, argv=0x7fffffffdde8) at 
../../../../../.mm/linux/amd64/debug/include/catch2/catch.hpp:10801
#47 0x0000000003d0fc24 in main (argc=1, argv=0x7fffffffdde8) at 
../../../../../engine/test/main.cpp:25

This is the content of the main.cpp:

  std::unique_ptr<v8::Platform> platform = 
v8::platform::NewDefaultPlatform();
  v8::V8::InitializePlatform(platform.get());
  v8::V8::Initialize();

    int result = Catch::Session().run(argc, argv);

    v8::V8::Dispose();
    v8::V8::ShutdownPlatform();

And the code that is failing:

create_params.array_buffer_allocator =
      v8::ArrayBuffer::Allocator::NewDefaultAllocator();
  i = v8::Isolate::New(create_params);

I'm trying more variations, but if there's something else I can do to help 
anyone help me, I will happily do so.

Thanks again!

-- 
-- 
v8-users mailing list
v8-users@googlegroups.com
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/v8-users/f81d746d-0ced-4841-8736-ed5d8ef90bc0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to