vscode: Crash from sqlite3 module with remote integration tests

CI runs from yesterday are starting to see occasional crashes in the remote integration tests due to sqlite3 module.

Example Runs:

https://github.com/microsoft/vscode/runs/5198249180?check_suite_focus=true#step:17:323 https://dev.azure.com/monacotools/a6d41577-0fa3-498e-af22-257312ff0545/_apis/build/builds/156227/logs/126

Symbolicated trace:

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

GPU: UNKNOWN

Crash reason:  0x00000000 / 0x00000000
Crash address: 0x7fff204bb92e
Process uptime: 10 seconds

Thread 0 (crashed)
 0  libsystem_kernel.dylib!__pthread_kill + 0xa
    rax = 0x0000000000000000   rdx = 0x0000000000000000
    rcx = 0x00007ffee97ab348   rbx = 0x0000000113276e00
    rsi = 0x0000000000000006   rdi = 0x0000000000000103
    rbp = 0x00007ffee97ab370   rsp = 0x00007ffee97ab348
     r8 = 0x00007fff807e20e8    r9 = 0x0000000000000000
    r10 = 0x0000000000000000   r11 = 0x0000000000000246
    r12 = 0x0000000000000103   r13 = 0x000000010e63c2c0
    r14 = 0x0000000000000006   r15 = 0x0000000000000016
    rip = 0x00007fff204bb92e
    Found by: given as instruction pointer in context
 1  libsystem_pthread.dylib!pthread_kill + 0x107
    rbx = 0x0000000113276e00   rbp = 0x00007ffee97ab370
    rsp = 0x00007ffee97ab350   r12 = 0x0000000000000103
    r13 = 0x000000010e63c2c0   r14 = 0x0000000000000006
    r15 = 0x0000000000000016   rip = 0x00007fff204ea5bd
    Found by: call frame info
 2  libsystem_c.dylib!abort + 0x7d
    rbx = 0x0000000000000003   rbp = 0x00007ffee97ab3b0
    rsp = 0x00007ffee97ab380   r12 = 0x00007fff80816ae0
    r13 = 0x000000010e63c2c0   r14 = 0x0000000113276e00
    r15 = 0x00007ffee97ab388   rip = 0x00007fff2043f406
    Found by: call frame info
 3  Electron Framework!std::__1::__shared_ptr_emplace<node::RealEnvStore, std::__1::allocator<node::RealEnvStore> >::~__shared_ptr_emplace() [shared_ptr.h : 280 + 0xa]
    rbx = 0x00007fff80816ae0   rbp = 0x00007ffee97ab3d0
    rsp = 0x00007ffee97ab3c0   r12 = 0x00007fff80816ae0
    r13 = 0x000000010e63c2c0   r14 = 0x00007fa86e873400
    r15 = 0x00007fa86e549000   rip = 0x000000010cc71dd2
    Found by: call frame info
 4  Electron Framework!std::__1::__hash_table<std::__1::__hash_value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::__unordered_map_hasher<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::__hash_value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, true>, std::__1::__unordered_map_equal<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::__hash_value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, true>, std::__1::allocator<std::__1::__hash_value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >::remove(std::__1::__hash_const_iterator<std::__1::__hash_node<std::__1::__hash_value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void*>*>) [__hash_table : 2575 + 0x2]
    rbp = 0x00007ffee97ab450   rsp = 0x00007ffee97ab3e0
    rip = 0x000000010cc71f6f
    Found by: previous frame's frame pointer
 5  Electron Framework + 0x67d1de9
    rbp = 0x00007ffee97ab460   rsp = 0x00007ffee97ab460
    rip = 0x000000010cc71de9
    Found by: previous frame's frame pointer
 6  Electron Framework!napi_add_finalizer [js_native_api_v8.cc : 432 + 0x3]
    rbp = 0x00007ffee97ab4c0   rsp = 0x00007ffee97ab470
    rip = 0x000000010cc1ec1a
    Found by: previous frame's frame pointer
 7  vscode-sqlite3.node!Napi::Error::Fatal(char const*, char const*) + 0x1a
    rbp = 0x00007ffee97ab4d0   rsp = 0x00007ffee97ab4d0
    rip = 0x000000012018751a
    Found by: previous frame's frame pointer
 8  vscode-sqlite3.node!Napi::Error::New(napi_env__*) + 0x169
    rbp = 0x00007ffee97ab520   rsp = 0x00007ffee97ab4e0
    rip = 0x000000012018cb49
    Found by: call frame info
 9  vscode-sqlite3.node!Napi::Function::MakeCallback(napi_value__*, unsigned long, napi_value__* const*, napi_async_context__*) const + 0x42
    rbx = 0x00007ffee97ab548   rbp = 0x00007ffee97ab580
    rsp = 0x00007ffee97ab530   r12 = 0x0000000000000000
    r14 = 0x00007fa871556930   r15 = 0x00007fa86e48de30
    rip = 0x000000012018cfe2
    Found by: call frame info
10  vscode-sqlite3.node!node_sqlite3::Statement::CleanQueue() + 0x508
    rbx = 0x00007fa87060ef01   rbp = 0x00007ffee97ab680
    rsp = 0x00007ffee97ab590   r12 = 0x0000000000000000
    r14 = 0x00007fa871556930   r15 = 0x00007fa86e48de30
    rip = 0x000000012019e588
    Found by: call frame info
11  vscode-sqlite3.node!node_sqlite3::Statement::~Statement() + 0x2a
    rbx = 0x00007fa871556930   rbp = 0x00007ffee97ab6a0
    rsp = 0x00007ffee97ab690   r12 = 0x00000001201aa0f0
    r13 = 0x0000000000000000   r14 = 0x00007fa87060ef30
    r15 = 0x00007fa871556930   rip = 0x00000001201ab70a
    Found by: call frame info
12  vscode-sqlite3.node!node_sqlite3::Statement::~Statement() + 0xe
    rbx = 0x00007fa871556930   rbp = 0x00007ffee97ab6c0
    rsp = 0x00007ffee97ab6b0   r12 = 0x00000001201aa0f0
    r13 = 0x0000000000000000   r14 = 0x00007fa87060ef30
    r15 = 0x00007fa871556930   rip = 0x00000001201a76de
    Found by: call frame info
13  vscode-sqlite3.node!Napi::ObjectWrap<node_sqlite3::Statement>::FinalizeCallback(napi_env__*, void*, void*) + 0x32
    rbx = 0x00007fa871556930   rbp = 0x00007ffee97ab6f0
    rsp = 0x00007ffee97ab6d0   r12 = 0x00000001201aa0f0
    r13 = 0x0000000000000000   r14 = 0x00007fa87060ef30
    r15 = 0x00007fa871556930   rip = 0x00000001201aa122
    Found by: call frame info
14  Electron Framework!napi_create_external_buffer [js_native_api_v8.h : 337 + 0x7]
    rbx = 0x00007fa87060ef30   rbp = 0x00007ffee97ab750
    rsp = 0x00007ffee97ab700   r12 = 0x00000001201aa0f0
    r13 = 0x0000000000000000   r14 = 0x0000000000000000
    r15 = 0x00007fa871556930   rip = 0x000000010cc20a9f
    Found by: call frame info
15  Electron Framework!node::InitializeOncePerProcess(int, char**, node::InitializationSettingsFlags) [node.cc : 1016 + 0x2]
    rbp = 0x00007ffee97ab770   rsp = 0x00007ffee97ab760
    rip = 0x000000010cc1509f
    Found by: previous frame's frame pointer
16  Electron Framework!napi_create_buffer [js_native_api_v8.h : 160 + 0x8]
    rbp = 0x00007ffee97ab790   rsp = 0x00007ffee97ab780
    rip = 0x000000010cc208d6
    Found by: previous frame's frame pointer
17  Electron Framework!node::Environment::NearHeapLimitCallback(void*, unsigned long, unsigned long) [env-inl.h : 448 + 0x4]
    rbp = 0x00007ffee97ab9c0   rsp = 0x00007ffee97ab7a0
    rip = 0x000000010cc02190
    Found by: previous frame's frame pointer
18  Electron Framework!node::ShouldAbortOnUncaughtException(v8::Isolate*) [env-inl.h : 373 + 0x7]
    rbp = 0x00007ffee97aba50   rsp = 0x00007ffee97ab9d0
    rip = 0x000000010cbcb2c4
    Found by: previous frame's frame pointer
19  Electron Framework!electron::TracingControllerImpl::~TracingControllerImpl() [javascript_environment.cc : 231 + 0x7]
    rbp = 0x00007ffee97aba70   rsp = 0x00007ffee97aba60
    rip = 0x00000001065a0765
    Found by: previous frame's frame pointer
20  Electron Framework!electron::ElectronBrowserMainParts::PostMainMessageLoopRun() [new : 245 + 0x3]
    rbp = 0x00007ffee97abae0   rsp = 0x00007ffee97aba80
    rip = 0x0000000106588629
    Found by: previous frame's frame pointer
21  Electron Framework!content::BrowserMainLoop::PostCreateThreadsImpl() [browser_main_loop.cc : 1177 + 0xc]
    rbp = 0x00007ffee97abb90   rsp = 0x00007ffee97abaf0
    rip = 0x000000010762c067
    Found by: previous frame's frame pointer
22  Electron Framework!content::(anonymous namespace)::BindHidManager(mojo::PendingReceiver<device::mojom::HidManager>) [browser_main_loop.cc : 418 + 0xa]
    rbp = 0x00007ffee97abbe0   rsp = 0x00007ffee97abba0
    rip = 0x000000010762d98a
    Found by: previous frame's frame pointer
23  Electron Framework!void mojo::internal::BinderContextTraits<content::ServiceWorkerVersionBaseInfo const&>::BindGenericReceiver<blink::mojom::PeriodicBackgroundSyncService>(base::RepeatingCallback<void (content::ServiceWorkerVersionBaseInfo const&, mojo::PendingReceiver<blink::mojom::PeriodicBackgroundSyncService>)> const&, content::ServiceWorkerVersionBaseInfo const&, mojo::ScopedHandleBase<mojo::MessagePipeHandle>) [handle.h : 166 + 0x1]
    rbp = 0x00007ffee97abc30   rsp = 0x00007ffee97abbf0
    rip = 0x00000001076296f6
    Found by: previous frame's frame pointer
24  Electron Framework!content::ContentMainRunnerImpl::Initialize(content::ContentMainParams const&) [content_main_runner_impl.cc : 681 + 0x3]
    rbp = 0x00007ffee97abd10   rsp = 0x00007ffee97abc40
    rip = 0x00000001074bdd83
    Found by: previous frame's frame pointer
25  Electron Framework!std::__1::unique_ptr<base::mac::ScopedNSAutoreleasePool, std::__1::default_delete<base::mac::ScopedNSAutoreleasePool> >::reset(base::mac::ScopedNSAutoreleasePool*) [unique_ptr.h : 313 + 0x2]
    rbp = 0x00007ffee97abdb0   rsp = 0x00007ffee97abd20
    rip = 0x00000001074bd81b
    Found by: previous frame's frame pointer
26  Electron Framework!bool mojo::internal::ValidateParams<display::mojom::internal::Display_Data>(mojo::internal::Pointer<display::mojom::internal::Display_Data> const&, mojo::internal::ValidationContext*) [validation_util.h : 0 + 0x7]
    rbp = 0x00007ffee97abfb0   rsp = 0x00007ffee97abdc0
    rip = 0x00000001074bc1eb
    Found by: previous frame's frame pointer
27  Electron Framework!remote_cocoa::mojom::internal::TextInputHost_HasCompositionText_Params_Data::Validate(void const*, mojo::internal::ValidationContext*) [text_input_host.mojom-shared.cc : 416 + 0x2]
    rbp = 0x00007ffee97abfe0   rsp = 0x00007ffee97abfc0
    rip = 0x00000001074bcae9
    Found by: previous frame's frame pointer
28  Electron Framework!ElectronMain [electron_library_main.mm : 32 + 0x5]
    rbp = 0x00007ffee97ac080   rsp = 0x00007ffee97abff0
    rip = 0x00000001064ba566
    Found by: previous frame's frame pointer
29  Electron + 0xd36
    rbp = 0x00007ffee97ac130   rsp = 0x00007ffee97ac090
    rip = 0x0000000106451d36
    Found by: previous frame's frame pointer
30  libdyld.dylib!start + 0x1
    rbp = 0x00007ffee97ac140   rsp = 0x00007ffee97ac140
    rip = 0x00007fff20505f3d
    Found by: previous frame's frame pointer

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Comments: 21 (21 by maintainers)

Commits related to this issue

Most upvoted comments

Will explore https://github.com/microsoft/vscode/issues/143186#issuecomment-1047458228 in march but have pushed a change to not attempt to create new SQLite databases when the application goes down with app.kill.

Given the thread trace contains Electron Framework!content::ContentMainRunnerImpl::Initialize, the crash is triggered from the client and not the server