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
- storage - add verbose logging when running in CI (#143186) — committed to microsoft/vscode by bpasero 2 years ago
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