Skip to content

Segmentation Fault Crash (SIGSEGV) with watcher.node in frame #0 - #4Β #206

@alichtman

Description

@alichtman

The following stack trace has been captured from a crash in vscode-server, using watcher v2.5.1
Unfortunately, I can't share a repro or the coredump file itself.

It seems like it's occurring very close to process start.

Backtrace

(lldb) target create --core "/var/tmp/cores/node.1767897"
Core file '/var/tmp/cores/node.1767897' (x86_64) was loaded.
bt
(lldb) bt
* thread #1, name = 'node', stop reason = SIGSEGV: sent by tkill system call (sender pid=1767897, uid=227932)
  * frame #0: 0x00007fcf31c3a31b watcher.node`std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, std::weak_ptr<DirTree>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, std::weak_ptr<DirTree>>>, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true>>::_M_erase(std::integral_constant<bool, true>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&) (.isra.155.constprop.176) + 75
    frame #1: 0x00007fcf31c3c58d watcher.node`std::_Sp_counted_deleter<DirTree*, DirTreeDeleter, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() + 61
    frame #2: 0x00007fcf31c62387 watcher.node`std::_Sp_counted_ptr_inplace<InotifySubscription, std::allocator<InotifySubscription>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() + 231
    frame #3: 0x00007fcf31c5f5a0 watcher.node`InotifyBackend::~InotifyBackend() + 256
    frame #4: 0x00007fcf31c39b2a watcher.node`std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::shared_ptr<Backend>, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, std::shared_ptr<Backend>>>>::~unordered_map() + 298
    frame #5: 0x00007fcf5aa412dd libc.so.6`__run_exit_handlers + 413
    frame #6: 0x00007fcf5aa41430 libc.so.6`exit + 32
    frame #7: 0x0000000000bd946f node`node::DefaultProcessExitHandlerInternal(node::Environment*, node::ExitCode) + 111
    frame #8: 0x0000000000c37f4f node`node::Environment::Exit(node::ExitCode) + 159
    frame #9: 0x0000000000f69f9f node`v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) + 303
    frame #10: 0x0000000000f6a80d 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::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, unsigned long*, int) + 141
    frame #11: 0x0000000000f6acd5 node`v8::internal::Builtin_HandleApiCall(int, unsigned long*, v8::internal::Isolate*) + 277
    frame #12: 0x0000000001975df6 node`Builtins_CEntry_Return1_ArgvOnStack_BuiltinExit + 54
    frame #13: 0x00000000018e7d1c node`Builtins_InterpreterEntryTrampoline + 220
    frame #14: 0x00000000018e7d1c node`Builtins_InterpreterEntryTrampoline + 220
    frame #15: 0x00007fcf3402b595
    frame #16: 0x00000000018e7d1c node`Builtins_InterpreterEntryTrampoline + 220
    frame #17: 0x00007fcf3402b72b
    frame #18: 0x00000000018e7d1c node`Builtins_InterpreterEntryTrampoline + 220
    frame #19: 0x00007fcf34030456
    frame #20: 0x00000000018e60dc node`Builtins_JSEntryTrampoline + 92
    frame #21: 0x00000000018e5e03 node`Builtins_JSEntry + 131
    frame #22: 0x000000000106224b node`v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) + 299
    frame #23: 0x00000000010632e4 node`v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*) + 100
    frame #24: 0x0000000000f259bd node`v8::Function::Call(v8::Local<v8::Context>, v8::Local<v8::Value>, int, v8::Local<v8::Value>*) + 333
    frame #25: 0x0000000000bd2daf node`node::InternalCallbackScope::Close() + 655
    frame #26: 0x0000000000bd312b node`node::InternalMakeCallback(node::Environment*, v8::Local<v8::Object>, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*, node::async_context) + 619
    frame #27: 0x0000000000bea18f node`node::AsyncWrap::MakeCallback(v8::Local<v8::Function>, int, v8::Local<v8::Value>*) + 127
    frame #28: 0x0000000000de1c37 node`node::StreamBase::CallJSOnreadMethod(long, v8::Local<v8::ArrayBuffer>, unsigned long, node::StreamBase::StreamBaseJSChecks) + 167
    frame #29: 0x0000000000de20b4 node`node::EmitToJSStreamListener::OnStreamRead(long, uv_buf_t const&) + 676
    frame #30: 0x0000000000de993f node`node::LibuvStreamWrap::OnUvRead(long, uv_buf_t const*) + 143
    frame #31: 0x0000000000de9d5a node`node::LibuvStreamWrap::ReadStart()::'lambda0'(uv_stream_s*, long, uv_buf_t const*)::_FUN(uv_stream_s*, long, uv_buf_t const*) + 90
    frame #32: 0x00000000018cff18 node`uv__stream_eof(buf=0x00007ffecb944710, stream=0x0000000005851990) at stream.c:937:3
    frame #33: 0x00000000018cfec8 node`uv__read(stream=0x0000000005851990) at stream.c:1106:7
    frame #34: 0x00000000018d00a0 node`uv__stream_io(loop=<unavailable>, w=0x0000000005851a18, events=17) at stream.c:1203:5
    frame #35: 0x00000000018d7b0b node`uv__io_poll(loop=0x000000000561ac80, timeout=<unavailable>) at linux.c:1485:11
    frame #36: 0x00000000018c3db7 node`uv_run(loop=<unavailable>, mode=UV_RUN_DEFAULT) at core.c:447:5
    frame #37: 0x0000000000bd3be6 node`node::SpinEventLoopInternal(node::Environment*) + 342
    frame #38: 0x0000000000d151f4 node`node::NodeMainInstance::Run(node::ExitCode*, node::Environment*) (.part.0) + 148
    frame #39: 0x0000000000d15c8d node`node::NodeMainInstance::Run() + 205
    frame #40: 0x0000000000c7d85f node`node::Start(int, char**) + 1423
    frame #41: 0x00007fcf5aa295d0 libc.so.6`__libc_start_call_main + 128
    frame #42: 0x00007fcf5aa29680 libc.so.6`__libc_start_main@@GLIBC_2.34 + 128
    frame #43: 0x0000000000bd187e node`_start + 46

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions