-
-
Notifications
You must be signed in to change notification settings - Fork 33.9k
Closed
Labels
v8 engineIssues and PRs related to the V8 dependency.Issues and PRs related to the V8 dependency.
Description
- Version: v8.0.0-nightly20170428b2c7a51dd7
- Platform: Darwin Ingvars-MacBook-Pro.local 16.5.0 Darwin Kernel Version 16.5.0: Fri Mar 3 16:52:33 PST 2017; root:xnu-3789.51.2~3/RELEASE_X86_64 x86_64
- Subsystem: V8
Steps to reproduce:
- follow examples from https://gist.github.com/kripken/59c67556dc03bb6d57052fedef1e61ab to build minimal standalone WebAssembly example (or, as it seems, just use any existing one)
- Try to run the following in Node.js console:
$ node
> w = fs.readFileSync('hello-world.wasm')
<Buffer 00 61 73 6d 01 00 00 00 00 0c 06 64 79 6c 69 6e 6b 80 80 c0 02 00 01 89 80 80 80 00 02 60 01 7f 01 7f 60 00 00 02 c1 80 80 80 00 04 03 65 6e 76 0a 6d ... >
> new WebAssembly.Module(w)
fish: 'node' terminated by signal SIGILL (Illegal instruction)I've tried nightly because currently stable Node.js 7.9.0 exposes slightly outdated WebAssembly version even with --expose-wasm.
However, while the nightly one provides up-to-date WebAssembly APIs, it looks like the V8 version it's using is still slightly outdated - 5.7.492.69, so, perhaps it's a known issue that was already fixed on V8 side and just needs to be picked up?
LLDB backtrace
Process 849 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
frame #0: 0x000000010095ff45 node`v8::internal::WasmModuleObject::New(v8::internal::Isolate*, v8::internal::Handle) + 85
node`v8::internal::WasmModuleObject::New:
-> 0x10095ff45 <+85>: ud2
0x10095ff47 <+87>: movq %r14, %rsi
0x10095ff4a <+90>: callq 0x10058e150 ; v8::internal::CanonicalHandleScope::Lookup(v8::internal::Object*)
0x10095ff4f <+95>: movq (%rax), %rax
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
* frame #0: 0x000000010095ff45 node`v8::internal::WasmModuleObject::New(v8::internal::Isolate*, v8::internal::Handle) + 85
frame #1: 0x0000000100944406 node`v8::internal::wasm::CreateModuleObjectFromBytes(v8::internal::Isolate*, unsigned char const*, unsigned char const*, v8::internal::wasm::ErrorThrower*, v8::internal::wasm::ModuleOrigin, v8::internal::Handle, v8::internal::Vector) + 502
frame #2: 0x000000010093f6d0 node`v8::(anonymous namespace)::WebAssemblyModule(v8::FunctionCallbackInfo const&) + 288
frame #3: 0x0000000100179962 node`v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo const&)) + 466
frame #4: 0x00000001001e52e2 node`v8::internal::MaybeHandle v8::internal::(anonymous namespace)::HandleApiCallHelper(v8::internal::Isolate*, v8::internal::Handle, v8::internal::Handle, v8::internal::Handle, v8::internal::Handle, v8::internal::BuiltinArguments) + 610
frame #5: 0x00000001001e4cb8 node`v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*) + 232
frame #6: 0x0000207e80a04427
frame #7: 0x0000207e80a9eb67
frame #8: 0x0000207e80b8a825
frame #9: 0x0000207e80aa0a83
frame #10: 0x0000207e80a2db61
frame #11: 0x000000010054b6fc node`v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, bool, v8::internal::Handle, v8::internal::Handle, int, v8::internal::Handle*, v8::internal::Handle, v8::internal::Execution::MessageHandling) + 732
frame #12: 0x000000010054b363 node`v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handle, v8::internal::Handle, int, v8::internal::Handle*) + 179
frame #13: 0x000000010014d1b0 node`v8::Script::Run(v8::Local) + 640
frame #14: 0x0000000100ad034f node`node::(anonymous namespace)::ContextifyScript::EvalMachine(node::Environment*, long long, bool, bool, v8::FunctionCallbackInfo const&, v8::TryCatch*) + 449
frame #15: 0x0000000100acfafe node`node::(anonymous namespace)::ContextifyScript::RunInThisContext(v8::FunctionCallbackInfo const&) + 268
frame #16: 0x0000000100179962 node`v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo const&)) + 466
frame #17: 0x00000001001e57af node`v8::internal::MaybeHandle v8::internal::(anonymous namespace)::HandleApiCallHelper(v8::internal::Isolate*, v8::internal::Handle, v8::internal::Handle, v8::internal::Handle, v8::internal::Handle, v8::internal::BuiltinArguments) + 911
frame #18: 0x00000001001e4ce9 node`v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*) + 281
frame #19: 0x0000207e80a04427
frame #20: 0x0000207e80b32733
frame #21: 0x0000207e80ac676e
frame #22: 0x0000207e80aa19fd
frame #23: 0x0000207e80b79271
frame #24: 0x0000207e80b79023
frame #25: 0x0000207e80a05f15
frame #26: 0x0000207e80b78dcf
frame #27: 0x0000207e80b6ed24
frame #28: 0x0000207e80b20fa0
frame #29: 0x0000207e80a05f15
frame #30: 0x0000207e80b780c0
frame #31: 0x0000207e80b771e4
frame #32: 0x0000207e80b730bf
frame #33: 0x0000207e80b70da8
frame #34: 0x0000207e80b70a32
frame #35: 0x0000207e80b21508
frame #36: 0x0000207e80b21025
frame #37: 0x0000207e80a05f15
frame #38: 0x0000207e80ad872e
frame #39: 0x0000207e80aa19fd
frame #40: 0x0000207e80a4cd2d
frame #41: 0x0000207e80ac676e
frame #42: 0x0000207e80aa19fd
frame #43: 0x0000207e80b6ec45
frame #44: 0x0000207e80b20fa0
frame #45: 0x0000207e80a05f15
frame #46: 0x0000207e80b6e59b
frame #47: 0x0000207e80b6de06
frame #48: 0x0000207e80a05f15
frame #49: 0x0000207e80b6d307
frame #50: 0x0000207e80a05f15
frame #51: 0x0000207e80aa0a83
frame #52: 0x0000207e80a2db61
frame #53: 0x000000010054b6fc node`v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, bool, v8::internal::Handle, v8::internal::Handle, int, v8::internal::Handle*, v8::internal::Handle, v8::internal::Execution::MessageHandling) + 732
frame #54: 0x000000010054b363 node`v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handle, v8::internal::Handle, int, v8::internal::Handle*) + 179
frame #55: 0x000000010016209f node`v8::Function::Call(v8::Local, v8::Local, int, v8::Local*) + 559
frame #56: 0x0000000100a9c1ce node`node::AsyncWrap::MakeCallback(v8::Local, int, v8::Local*) + 600
frame #57: 0x0000000100af6a41 node`node::StreamBase::EmitData(long, v8::Local, v8::Local) + 223
frame #58: 0x0000000100af8e64 node`node::StreamWrap::OnReadImpl(long, uv_buf_t const*, uv_handle_type, void*) + 524
frame #59: 0x0000000100af937d node`node::StreamWrap::OnReadCommon(uv_stream_s*, long, uv_buf_t const*, uv_handle_type) + 127
frame #60: 0x0000000100c11d94 node`uv__stream_io + 1261
frame #61: 0x0000000100c195b1 node`uv__io_poll + 1621
frame #62: 0x0000000100c0a43b node`uv_run + 321
frame #63: 0x0000000100ab6999 node`node::Start(v8::Isolate*, node::IsolateData*, int, char const* const*, int, char const* const*) + 514
frame #64: 0x0000000100ab65d4 node`node::Start(uv_loop_s*, int, char const* const*, int, char const* const*) + 447
frame #65: 0x0000000100ab5815 node`node::Start(int, char**) + 329
frame #66: 0x0000000100001734 node`start + 52
Metadata
Metadata
Assignees
Labels
v8 engineIssues and PRs related to the V8 dependency.Issues and PRs related to the V8 dependency.