microsoft / vscode

Visual Studio Code
https://code.visualstudio.com
MIT License
162.77k stars 28.73k forks source link

VSCode Insiders crashes during startup on MacOS 11 #215430

Closed slavek-kucera closed 2 months ago

slavek-kucera commented 3 months ago

Does this issue occur when all extensions are disabled?: Yes

Steps to Reproduce:

  1. Try running tests on macos 11 e.g. https://github.com/slavek-kucera/vscode-crash/actions/runs/9498680266/job/26177922300
  2. Observe
    [2161:0613/111919.940396:ERROR:node_bindings.cc(162)] Fatal error in V8: v8::Template::Set Invalid value, must be a primitive or a Template
    Exit code:   SIGSEGV
danpoynor commented 3 months ago

1.90.0 still works if needed https://update.code.visualstudio.com/1.90.0-insider/darwin-universal/insider

deepak1556 commented 3 months ago

Can you collect crash dump from the pipeline following the steps at https://github.com/microsoft/vscode/wiki/Native-Crash-Issues#creating-a-crash-report, thanks!

slavek-kucera commented 3 months ago

The only available file was generated in the pending subdirectory https://github.com/slavek-kucera/vscode-crash/actions/runs/9546502475/artifacts/1608121691

The job is here, an extra warning message was generated

Found --crash-reporter-directory argument. Setting crashDumps directory to be '/Users/runner/work/vscode-crash/vscode-crash'
[1927:0617/[11](https://github.com/slavek-kucera/vscode-crash/actions/runs/9546502475/job/26309520857#step:4:12)0113.548461:ERROR:node_bindings.cc(162)] Fatal error in V8: v8::Template::Set Invalid value, must be a primitive or a Template
[0617/110113.886370:WARNING:crash_report_exception_handler.cc(235)] UniversalExceptionRaise: (os/kern) failure (5)
Exit code:   SIGSEGV
SIGSEGV
deepak1556 commented 3 months ago

Symbolicated trace

Operating system: Mac OS X
                  11.7.10 20G1427
CPU: amd64
     family 6 model 58 stepping 9
     3 CPUs

GPU: UNKNOWN

Crash reason:  EXC_BAD_ACCESS / KERN_INVALID_ADDRESS
Crash address: 0x0
Process uptime: 4 seconds

Thread 0 (crashed)
 0  Electron Framework!(anonymous namespace)::V8FatalErrorCallback(char const*, char const*) [node_bindings.cc : 170 + 0x0]
    rax = 0x0000000000000028   rdx = 0x0000000117371d01
    rcx = 0x0000000000000008   rbx = 0x00000001162c8e5b
    rsi = 0x0000014000a01600   rdi = 0x00007fff8081d0e0
    rbp = 0x00007ffee419ef40   rsp = 0x00007ffee419edd0
     r8 = 0x00007fff8081d0d0    r9 = 0x0000000117370940
    r10 = 0x0000000000000001   r11 = 0xffff81411c9d2097
    r12 = 0x00007ffee419ede8   r13 = 0x00000140008da4f8
    r14 = 0x00007ffee419ef08   r15 = 0x00007ffee419ef08
    rip = 0x000000010e4945e2
    Found by: given as instruction pointer in context
 1  Electron Framework!v8::Utils::ReportApiFailure(char const*, char const*) [api.cc : 322 + 0x9]
    rbp = 0x00007ffee419efa0   rsp = 0x00007ffee419ef50
    rip = 0x000000010f7d0d0d
    Found by: previous frame's frame pointer
 2  Electron Framework!v8::Template::Set(v8::Local<v8::Name>, v8::Local<v8::Data>, v8::PropertyAttribute) [api.h : 197 + 0x13]
    rbp = 0x00007ffee419efd0   rsp = 0x00007ffee419efb0
    rip = 0x000000010f7d2546
    Found by: previous frame's frame pointer
 3  Electron Framework!napi_define_class [js_native_api_v8.cc : 0 + 0x2c]
    rbp = 0x00007ffee419f0e0   rsp = 0x00007ffee419efe0
    rip = 0x000000011572fecc
    Found by: previous frame's frame pointer
 4  spdlog.node!Napi::ObjectWrap<Logger>::DefineClass(Napi::Env, char const*, unsigned long, napi_property_descriptor const*, void*) + 0x218
    rbp = 0x00007ffee419f190   rsp = 0x00007ffee419f0f0
    rip = 0x0000000117703a38
    Found by: previous frame's frame pointer
 5  spdlog.node!Logger::Init(Napi::Env, Napi::Object) + 0x359
    rbx = 0x0000014000a3e760   rbp = 0x00007ffee419f4f0
    rsp = 0x00007ffee419f1a0   r12 = 0x0000014000986300
    r13 = 0x000001400028c048   r14 = 0x0000014000a3e760
    r15 = 0x0000000000000000   rip = 0x00000001176fd709
    Found by: call frame info
 6  spdlog.node!Init(Napi::Env, Napi::Object) + 0xb8
    rbx = 0x0000014000a3e760   rbp = 0x00007ffee419f520
    rsp = 0x00007ffee419f500   r12 = 0x0000014000a3e760
    r13 = 0x000001400028c048   r14 = 0x0000014000a3e760
    r15 = 0x000001400028c048   rip = 0x00000001176d2388
    Found by: call frame info
 7  spdlog.node!napi_register_module_v1 + 0x11
    rbx = 0x0000000000000000   rbp = 0x00007ffee419f540
    rsp = 0x00007ffee419f530   r12 = 0x0000014000a3e760
    r13 = 0x000001400028c048   r14 = 0x0000000000000000
    r15 = 0xbfc6ffffffffffff   rip = 0x00000001176d2551
    Found by: call frame info
 8  Electron Framework!napi_module_register_by_symbol(v8::Local<v8::Object>, v8::Local<v8::Value>, v8::Local<v8::Context>, napi_value__* (*)(napi_env__*, napi_value__*), int) [node_api.cc : 731 + 0xc]
    rbx = 0x0000000000000000   rbp = 0x00007ffee419fa00
    rsp = 0x00007ffee419f550   r12 = 0x0000014000a3e760
    r13 = 0x000001400028c048   r14 = 0x0000000000000000
    r15 = 0xbfc6ffffffffffff   rip = 0x000000011573aed0
    Found by: call frame info
 9  Electron Framework!std::__Cr::__function::__func<node::binding::DLOpen(v8::FunctionCallbackInfo<v8::Value> const&)::$_0, std::__Cr::allocator<node::binding::DLOpen(v8::FunctionCallbackInfo<v8::Value> const&)::$_0>, bool (node::binding::DLib*)>::operator()(node::binding::DLib*&&) [node_binding.cc : 504 + 0x8]
    rbp = 0x00007ffee419fe50   rsp = 0x00007ffee419fa10
    rip = 0x000000011575f1fc
    Found by: previous frame's frame pointer
10  Electron Framework!node::Environment::TryLoadAddon(char const*, int, std::__Cr::function<bool (node::binding::DLib*)> const&) [function.h : 425 + 0x5]
    rbp = 0x00007ffee419fea0   rsp = 0x00007ffee419fe60
    rip = 0x0000000115710681
    Found by: previous frame's frame pointer
11  Electron Framework!node::binding::DLOpen(v8::FunctionCallbackInfo<v8::Value> const&) [node_binding.cc : 457 + 0x11]
    rbp = 0x00007ffee41a0360   rsp = 0x00007ffee419feb0
    rip = 0x000000011575d769
deepak1556 commented 3 months ago

Crash at following v8 API due to incorrect value types, I don't see any recent changes along the crash code path that would explain this. We are pretty much calling into N-API in https://github.com/microsoft/node-spdlog/blob/1cafb90b3de696ef8242d6d42ab7428637a50d50/src/logger.cc#L20 .

A next good step would be to bisect the change, I can only try this next week . If possible, can you help narrow down the commit that introduced the regression ? You can pass commit value to the version field of downloadAndUnzipVSCode api, ex:

const vscodeExecutablePath = await downloadAndUnzipVSCode({version: '85e9b0786cc505d85f326991227de364a5bd7293'});
slavek-kucera commented 3 months ago

I modified the job definition so it can be started with arbitrary commit, but I have to wait for the macos11 brownout to be over to run the test.

MauricioAndrades commented 3 months ago

I am also seeing this same crash on OS X 10.15.7 symbolicated-output.log

slavek-kucera commented 3 months ago

This is the crash dump from commit 85e9b0786cc505d85f326991227de364a5bd7293: https://github.com/slavek-kucera/vscode-crash/actions/runs/9548834443/artifacts/1611630223

slavek-kucera commented 3 months ago

I managed to narrow the commit range to a4ac06f9116c7db05c57333e9ae5ce7e472e6fe4 - still works 0a417782b1781d39803b8f1791cfb22f8835ddae - no longer works

This commit b0a60ae2da4cc39ff1c6141c4f0634e59ad1d66f is the one that stands out...

rinvii commented 3 months ago

1.90.0 still works if needed https://update.code.visualstudio.com/1.90.0-insider/darwin-universal/insider

This works. Make sure to turn off auto updates as well. This morning, I was confused on why VS Code broke again.

https://code.visualstudio.com/docs/supporting/FAQ#_how-do-i-opt-out-of-vs-code-autoupdates

fcasals commented 2 months ago

same here 1.91.0-insider on mac os 11.7.10 (20G1427) crashing as soon as started rolling back to 1.90.0

aminya commented 2 months ago

It fails on VsCode insiders. Here's the stack trace:

[21:55:01.710] [server] 
[21:55:01.710] [server] Server started
[21:55:01.890] [server] FATAL ERROR: v8::Template::Set Invalid value, must be a primitive or a Template
[21:55:01.891] [server] ----- Native stack trace -----
[21:55:01.891] [server] 
[21:55:01.891] [server]  1: 0x1052ab6c5 node::Abort() [/Users/admin/.vscode-server-insiders/cli/servers/Insiders-aea213b7fcc7de5c24ad797ac1af209b159d451f/server/node]
[21:55:01.891] [server]  2: 0x1052ab7b1 node::OnFatalError(char const*, char const*) [/Users/admin/.vscode-server-insiders/cli/servers/Insiders-aea213b7fcc7de5c24ad797ac1af209b159d451f/server/node]
[21:55:01.892] [server]  3: 0x105460055 v8::Template::Set(v8::Local<v8::Name>, v8::Local<v8::Data>, v8::PropertyAttribute) [/Users/admin/.vscode-server-insiders/cli/servers/Insiders-aea213b7fcc7de5c24ad797ac1af209b159d451f/server/node]
[21:55:01.892] [server]  4: 0x1052581a7 napi_define_class [/Users/admin/.vscode-server-insiders/cli/servers/Insiders-aea213b7fcc7de5c24ad797ac1af209b159d451f/server/node]
[21:55:01.892] [server]  5: 0x10b0c4a38 Napi::ObjectWrap<Logger>::DefineClass(Napi::Env, char const*, unsigned long, napi_property_descriptor const*, void*) [/Users/admin/.vscode-server-insiders/cli/servers/Insiders-aea213b7fcc7de5c24ad797ac1af209b159d451f/server/node_modules/@vscode/spdlog/build/Release/spdlog.node]
[21:55:01.892] [server]  6: 0x10b0be709 Logger::Init(Napi::Env, Napi::Object) [/Users/admin/.vscode-server-insiders/cli/servers/Insiders-aea213b7fcc7de5c24ad797ac1af209b159d451f/server/node_modules/@vscode/spdlog/build/Release/spdlog.node]
[21:55:01.893] [server]  7: 0x10b093388 Init(Napi::Env, Napi::Object) [/Users/admin/.vscode-server-insiders/cli/servers/Insiders-aea213b7fcc7de5c24ad797ac1af209b159d451f/server/node_modules/@vscode/spdlog/build/Release/spdlog.node]
[21:55:01.893] [server]  8: 0x10b093551 napi_register_module_v1 [/Users/admin/.vscode-server-insiders/cli/servers/Insiders-aea213b7fcc7de5c24ad797ac1af209b159d451f/server/node_modules/@vscode/spdlog/build/Release/spdlog.node]
[21:55:01.893] [server]  9: 0x10527272d napi_module_register_by_symbol(v8::Local<v8::Object>, v8::Local<v8::Value>, v8::Local<v8::Context>, napi_value__* (*)(napi_env__*, napi_value__*), int) [/Users/admin/.vscode-server-insiders/cli/servers/Insiders-aea213b7fcc7de5c24ad797ac1af209b159d451f/server/node]
[21:55:01.894] [server] 10: 0x105278819 std::__1::__function::__func<node::binding::DLOpen(v8::FunctionCallbackInfo<v8::Value> const&)::$_0, std::__1::allocator<node::binding::DLOpen(v8::FunctionCallbackInfo<v8::Value> const&)::$_0>, bool (node::binding::DLib*)>::operator()(node::binding::DLib*&&) [/Users/admin/.vscode-server-insiders/cli/servers/Insiders-aea213b7fcc7de5c24ad797ac1af209b159d451f/server/node]
[21:55:01.894] [server] 11: 0x105242323 node::Environment::TryLoadAddon(char const*, int, std::__1::function<bool (node::binding::DLib*)> const&) [/Users/admin/.vscode-server-insiders/cli/servers/Insiders-aea213b7fcc7de5c24ad797ac1af209b159d451f/server/node]
[21:55:01.894] [server] 12: 0x1052770cf node::binding::DLOpen(v8::FunctionCallbackInfo<v8::Value> const&) [/Users/admin/.vscode-server-insiders/cli/servers/Insiders-aea213b7fcc7de5c24ad797ac1af209b159d451f/server/node]
[21:55:01.894] [server] 13: 0x1054c5da8 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::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, unsigned long*, int) [/Users/admin/.vscode-server-insiders/cli/servers/Insiders-aea213b7fcc7de5c24ad797ac1af209b159d451f/server/node]
[21:55:01.895] [server] 14: 0x1054c536a v8::internal::Builtin_HandleApiCall(int, unsigned long*, v8::internal::Isolate*) [/Users/admin/.vscode-server-insiders/cli/servers/Insiders-aea213b7fcc7de5c24ad797ac1af209b159d451f/server/node]
[21:55:01.895] [server] 15: 0x105e721b6 Builtins_CEntry_Return1_ArgvOnStack_BuiltinExit [/Users/admin/.vscode-server-insiders/cli/servers/Insiders-aea213b7fcc7de5c24ad797ac1af209b159d451f/server/node]
[21:55:01.895] [server] 16: 0x105de3c9c Builtins_InterpreterEntryTrampoline [/Users/admin/.vscode-server-insiders/cli/servers/Insiders-aea213b7fcc7de5c24ad797ac1af209b159d451f/server/node]
[21:55:01.896] [server] 17: 0x111a346d2 
[21:55:01.896] [server] 18: 0x111a1d90f 
[21:55:01.896] [server] 
[21:55:01.897] [server] ----- JavaScript stack trace -----
[21:55:01.897] [server] 
[21:55:01.897] [server] 1: Module._extensions..node (node:internal/modules/cjs/loader:1473:18)
[21:55:01.897] [server] 2: Module.load (node:internal/modules/cjs/loader:1207:32)
[21:55:01.898] [server] 3: Module._load (node:internal/modules/cjs/loader:1023:12)
[21:55:01.898] [server] 4: Module.require (node:internal/modules/cjs/loader:1235:19)
[21:55:01.899] [server] 5: require (node:internal/modules/helpers:176:18)
[21:55:01.899] [server] 6: bindings (/Users/admin/.vscode-server-insiders/cli/servers/Insiders-aea213b7fcc7de5c24ad797ac1af209b159d451f/server/node_modules/bindings/bindings.js:112:48)
[21:55:01.899] [server] 7: /Users/admin/.vscode-server-insiders/cli/servers/Insiders-aea213b7fcc7de5c24ad797ac1af209b159d451f/server/node_modules/@vscode/spdlog/index.js:3:35
[21:55:01.899] [server] 8: Module._compile (node:internal/modules/cjs/loader:1376:14)
[21:55:01.900] [server] 9: Module._extensions..js (node:internal/modules/cjs/loader:1435:10)
[21:55:01.900] [server] 10: Module.load (node:internal/modules/cjs/loader:1207:32)
[21:55:01.900] [server] 
[21:55:01.901] [server] 
[21:55:01.901] [server] /Users/admin/.vscode-server-insiders/cli/servers/Insiders-aea213b7fcc7de5c24ad797ac1af209b159d451f/server/bin/code-server-insiders: line 22:  3306 Abort trap: 6           "$ROOT/node" ${INSPECT:-} "$ROOT/out/server-main.js" "$@"
[21:55:01.905] ------
code --version
1.91.0-insider
aea213b7fcc7de5c24ad797ac1af209b159d451f
x64
Rhys-T commented 2 months ago

This seems to have just started happening on the regular release version of VSCode too, as of 1.91.0[^1]. Downgrading to 1.90.2 works for now (Universal, Intel, Apple Silicon) - just remember to turn off updates for now, as mentioned in https://github.com/microsoft/vscode/issues/215430#issuecomment-2184007425.

[^1]: Only tested on macOS 10.15.7 Catalina so far, but it seems to be the exact same crash the Insiders version was getting on both 10.15 Catalina and 11 Big Sur.

spreiter commented 2 months ago

This seems to have just started happening on the regular release version of VSCode too, as of 1.91.01. Downgrading to 1.90.2 works for now (Universal, Intel, Apple Silicon) - just remember to turn off updates for now, as mentioned in #215430 (comment).

Footnotes

1. Only tested on macOS 10.15.7 Catalina so far, but it seems to be the exact same crash the Insiders version was getting on both 10.15 Catalina and 11 Big Sur. [↩](#user-content-fnref-1-fecd626bd4dcc0e589a3513fd080bf1d)

Yes, I also have the same problem now on stable with macOS 11.7.10. Thanks for all the links @Rhys-T , downgrade helped.

VSCodeTriageBot commented 2 months ago

This bug has been fixed in the latest release of VS Code Insiders!

@slavek-kucera, you can help us out by commenting /verified if things are now working as expected.

If things still don't seem right, please ensure you're on version 82104a3a6cf8713b81e5bbd97960dbf5c82a816a of Insiders (today's or later - you can use Help: About in the command palette to check), and leave a comment letting us know what isn't working as expected.

Happy Coding!

slavek-kucera commented 2 months ago

/verified