MichaReiser / llvm-node

LLVM 9.0+ Node Bindings

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Node 11.4 crash on TargetMachineWrapper::of

ovr opened this issue · comments

Hey!

node -v
v11.4.0

I was trying to find where is a bug, but I didn't find..

LLDB:

lldb node                                                                                      SIGSEGV(11) ↵  3.68 Dur
(lldb) target create "node"
Current executable set to 'node' (x86_64).
(lldb) run ./node_modules/jest/bin/jest.js --ci --coverage --runInBand
Process 88466 launched: '/Users/ovr/.nvm/versions/node/v11.4.0/bin/node' (x86_64)
 PASS  test/ir/ir-builder.spec.ts
 PASS  test/ir/module.spec.ts
 PASS  test/ir/type.spec.ts
 PASS  test/ir/basic-block.spec.ts
 PASS  test/ir/value.spec.ts
 PASS  test/ir/argument.spec.ts
 PASS  test/ir/global-variable.spec.ts
 PASS  test/ir/struct-type.spec.ts
 PASS  test/ir/constant-fp.spec.ts
 PASS  test/ir/call-inst.spec.ts
 PASS  test/ir/verifier.spec.ts
 PASS  test/ir/alloca-inst.spec.ts
 PASS  test/ir/constant.spec.ts
 PASS  test/ir/constant-int.spec.ts
 PASS  test/ir/constant-data-array.spec.ts
 PASS  test/ir/phi-node.spec.ts

 RUNS  ...
Process 88466 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
    frame #0: 0x0000000100198b05 node`v8::internal::(anonymous namespace)::InstantiateObject(v8::internal::Isolate*, v8::internal::Handle<v8::internal::ObjectTemplateInfo>, v8::internal::Handle<v8::internal::JSReceiver>, bool, bool) + 37
node`v8::internal::(anonymous namespace)::InstantiateObject:
->  0x100198b05 <+37>: movq   (%rsi), %rax
    0x100198b08 <+40>: movl   0x13(%rax), %ebx
    0x100198b0b <+43>: xorl   %esi, %esi
    0x100198b0d <+45>: testq  %r12, %r12
Target 0: (node) stopped.
(lldb) bt all
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
  * frame #0: 0x0000000100198b05 node`v8::internal::(anonymous namespace)::InstantiateObject(v8::internal::Isolate*, v8::internal::Handle<v8::internal::ObjectTemplateInfo>, v8::internal::Handle<v8::internal::JSReceiver>, bool, bool) + 37
    frame #1: 0x0000000100198a9e node`v8::internal::ApiNatives::InstantiateObject(v8::internal::Isolate*, v8::internal::Handle<v8::internal::ObjectTemplateInfo>, v8::internal::Handle<v8::internal::JSReceiver>) + 62
    frame #2: 0x00000001001bae38 node`v8::ObjectTemplate::NewInstance(v8::Local<v8::Context>) + 280
    frame #3: 0x0000000109c3bbac llvm-node.node`TargetMachineWrapper::of(llvm::TargetMachine const*) + 108
    frame #4: 0x0000000109c3b277 llvm-node.node`TargetWrapper::createTargetMachine(Nan::FunctionCallbackInfo<v8::Value> const&) + 1015
    frame #5: 0x0000000109c10c25 llvm-node.node`Nan::imp::FunctionCallbackWrapper(v8::FunctionCallbackInfo<v8::Value> const&) + 165
    frame #6: 0x0000000100221f37 node`v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo*) + 567
    frame #7: 0x0000000100221506 node`v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) + 566
    frame #8: 0x0000000100220c00 node`v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*) + 288
    frame #9: 0x00003aef44bcfb7d
    frame #10: 0x00003aef44b8e458
    frame #11: 0x00003aef44b8e458
    frame #12: 0x00003aef44b8e458
    frame #13: 0x00003aef44b876a6
    frame #14: 0x00003aef44c6bd9b
    frame #15: 0x00003aef44b89e72
    frame #16: 0x00003aef44c0a400
    frame #17: 0x00003aef44b8e458
    frame #18: 0x00003aef44b8e458
    frame #19: 0x00003aef44b876a6
    frame #20: 0x00003aef44bbf7ae
    frame #21: 0x00003aef44b9c6d2
    frame #22: 0x00003aef44b85c9e
    frame #23: 0x000000010054da45 node`v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, bool, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*, v8::internal::Handle<v8::internal::Object>, v8::internal::Execution::MessageHandling, v8::internal::Execution::Target) + 629
    frame #24: 0x000000010054dcc7 node`v8::internal::Execution::TryCall(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*, v8::internal::Execution::MessageHandling, v8::internal::MaybeHandle<v8::internal::Object>*, v8::internal::Execution::Target) + 231
    frame #25: 0x000000010054ddea node`v8::internal::Execution::RunMicrotasks(v8::internal::Isolate*, v8::internal::Execution::MessageHandling, v8::internal::MaybeHandle<v8::internal::Object>*) + 42
    frame #26: 0x0000000100673de4 node`v8::internal::Isolate::RunMicrotasks() + 436
    frame #27: 0x00000001000104fc node`node::InternalCallbackScope::Close() + 324
    frame #28: 0x00000001000420bc node`node::InternalMakeCallback(node::Environment*, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*, node::async_context) + 306
    frame #29: 0x0000000100042291 node`node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*, node::async_context) + 161
    frame #30: 0x0000000100027348 node`node::Environment::CheckImmediate(uv_check_s*) + 228
    frame #31: 0x00000001009fe6a2 node`uv__run_check + 167
    frame #32: 0x00000001009f97e6 node`uv_run + 344
    frame #33: 0x000000010004816e node`node::Start(v8::Isolate*, node::IsolateData*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) + 824
    frame #34: 0x00000001000472b8 node`node::Start(uv_loop_s*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) + 330
    frame #35: 0x0000000100046f1e node`node::Start(int, char**) + 243
    frame #36: 0x0000000100001034 node`start + 52```

Thanks

I'm sorry. It seems like I overlooked this issue.

Were you able to reproduce?
Do you know precisely in which test the error occurs? A method I used in the past to narrow down such an error was to use "binary search". Try to comment out half of the tests in a file and see if the error still occurs. Depending on the outcome either comment out the other half of the tests or comment out the half of the remaining tests. Continue till you can narrow it down to a single test.

I think It was a bug with "first" versions of node (inside nodejs), I started to use latest Node and it works.... Magic
I am going to close this issue

Thanks