Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DCHECK when closing BrowserWindow from microtask #20013

Closed
nornagon opened this issue Aug 28, 2019 · 4 comments
Closed

DCHECK when closing BrowserWindow from microtask #20013

nornagon opened this issue Aug 28, 2019 · 4 comments
Assignees

Comments

@nornagon
Copy link
Member

Release builds don't crash on this because it's a DCHECK.

Fiddle: https://gist.github.com/316a0d5e34603dc3a352e8289f0065de

const {app, BrowserWindow} = require('electron')

async function ensureWindowIsClosed(window) {
  new Promise(resolve => {
    window.once('closed', () => resolve())
  }).then(() => {}) // <-- this then() is critical! The crash doesn't happen without it.
  window.destroy()
}
const closeWindow = async (window) => {
  await ensureWindowIsClosed(window)
}

async function createWindow () {
  const w = new BrowserWindow({show: false})
  try {
    await w.webContents.session.cookies.get({ url: 'http://127.0.0.1' })
  } finally {
    await closeWindow(w)
  }
}

app.on('ready', createWindow)

Stack trace:

#
# Fatal error in ./../../v8/src/execution/microtask-queue.cc, line 126
# Debug check failed: !*flag_.
#
#
#
#FailureMessage Object: 0x7ffee8dc3970Received signal 4 <unknown> 000112059212
0   Electron Framework                  0x000000010f56bda9 base::debug::CollectStackTrace(void**, unsigned long) + 9
1   Electron Framework                  0x000000010f416b53 base::debug::StackTrace::StackTrace() + 19
2   Electron Framework                  0x000000010f56bc41 base::debug::(anonymous namespace)::StackDumpSignalHandler(int, __siginfo*, void*) + 2385
3   libsystem_platform.dylib            0x00007fff66ab1b5d _sigtramp + 29
4   ???                                 0x0000ffff00001fab 0x0 + 281470681751467
5   Electron Framework                  0x0000000112052773 V8_Fatal(char const*, int, char const*, ...) + 339
6   Electron Framework                  0x00000001120522c5 v8::base::(anonymous namespace)::DefaultDcheckHandler(char const*, int, char const*) + 21
7   Electron Framework                  0x000000010ca16341 v8::internal::MicrotaskQueue::RunMicrotasks(v8::internal::Isolate*) + 1345
8   Electron Framework                  0x0000000114b61b54 node::InternalCallbackScope::Close() + 260
9   Electron Framework                  0x0000000114b61edd node::InternalMakeCallback(node::Environment*, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*, node::async_context) + 525
10  Electron Framework                  0x0000000114b62121 node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*, node::async_context) + 161
11  Electron Framework                  0x000000010ae7170f mate::internal::CallMethodWithArgs(v8::Isolate*, v8::Local<v8::Object>, char const*, std::__1::vector<v8::Local<v8::Value>, std::__1::allocator<v8::Local<v8::Value> > >*) + 79
12  Electron Framework                  0x000000010ad81e6e bool mate::EventEmitter<electron::api::TopLevelWindow>::EmitWithEvent<>(base::BasicStringPiece<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, v8::Local<v8::Object>) + 318
13  Electron Framework                  0x000000010ad81d00 bool mate::EventEmitter<electron::api::TopLevelWindow>::EmitWithSender<>(base::BasicStringPiece<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, content::RenderFrameHost*, base::Optional<base::OnceCallback<void (base::Value)> >) + 160
14  Electron Framework                  0x000000010ad7a53a electron::api::TopLevelWindow::OnWindowClosed() + 474
15  Electron Framework                  0x000000010adfe372 electron::NativeWindow::NotifyWindowClosed() + 274
16  Electron Framework                  0x000000010ae2e4fa -[AtomNSWindowDelegate windowWillClose:] + 26
17  CoreFoundation                      0x00007fff3a96137a __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
18  CoreFoundation                      0x00007fff3a9612f4 ___CFXRegistrationPost_block_invoke + 63
19  CoreFoundation                      0x00007fff3a96125e _CFXRegistrationPost + 404
20  CoreFoundation                      0x00007fff3a96968d ___CFXNotificationPost_block_invoke + 87
21  CoreFoundation                      0x00007fff3a8d276c -[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1834
22  CoreFoundation                      0x00007fff3a8d1a17 _CFXNotificationPost + 840
23  Foundation                          0x00007fff3cb7506b -[NSNotificationCenter postNotificationName:object:userInfo:] + 66
24  AppKit                              0x00007fff3885b8de -[NSWindow _finishClosingWindow] + 186
25  AppKit                              0x00007fff382f4671 -[NSWindow _close] + 364
26  Electron Framework                  0x000000010ae05252 electron::NativeWindowMac::CloseImmediately() + 98
27  Electron Framework                  0x000000010ad79c81 electron::api::TopLevelWindow::~TopLevelWindow() + 81
28  Electron Framework                  0x000000010adc7279 electron::api::BrowserWindow::~BrowserWindow() + 521
29  Electron Framework                  0x000000010adc7455 non-virtual thunk to electron::api::BrowserWindow::~BrowserWindow() + 21
30  Electron Framework                  0x000000010ecee41a mate::internal::Destroyable::Destroy(mate::Arguments*) + 138
31  Electron Framework                  0x000000010ad1aebf mate::internal::Dispatcher<void (mate::Arguments*)>::DispatchToCallback(v8::FunctionCallbackInfo<v8::Value> const&) + 223
32  Electron Framework                  0x000000010c91a5ce v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) + 1118
33  Electron Framework                  0x000000010c8b2da4 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::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) + 1140
34  Electron Framework                  0x000000010c8b1191 v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*) + 817
35  Electron Framework                  0x000000010c8b0bdc v8::internal::Builtin_HandleApiCall(int, unsigned long*, v8::internal::Isolate*) + 140
36  Electron Framework                  0x000000010d83dea0 Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_BuiltinExit + 64
37  Electron Framework                  0x000000010d5f5cf2 Builtins_InterpreterEntryTrampoline + 946
38  Electron Framework                  0x000000010d5f5cf2 Builtins_InterpreterEntryTrampoline + 946
39  Electron Framework                  0x000000010d5f5cf2 Builtins_InterpreterEntryTrampoline + 946
[end of stack trace]
@ckerr
Copy link
Member

ckerr commented Aug 30, 2019

Looks like the failing DCHECK is that we're trying to run a microtask queue that's already running. The constructor's DCHECK in this code is what's failing:

  class SetIsRunningMicrotasks {
   public:
    explicit SetIsRunningMicrotasks(bool* flag) : flag_(flag) {
      DCHECK(!*flag_);
      *flag_ = true;
    }
  
    ~SetIsRunningMicrotasks() {
      DCHECK(*flag_);
      *flag_ = false;
    }
  
   private:
    bool* flag_;
  };

The first call to pump the microtask queue appears to come from electron::MicrotasksRunner::DidProcessTask(base::PendingTask const&) which calls PerformCheckpoint(), which basically runs microtasks if any are queued:

https://github.com/electron/electron/blob/master/shell/browser/microtasks_runner.cc#L17

https://github.com/v8/v8/blob/master/src/execution/microtask-queue.cc#L117

#0  0x00007fffd95fe159 in v8::internal::MicrotaskQueue::RunMicrotasks(v8::internal::Isolate*) (this=0x3d30f6162200, isolate=0x3d30f6539020) at ./../../v8/src/execution/microtask-queue.cc:157
#1  0x0000555556b53632 in electron::MicrotasksRunner::DidProcessTask(base::PendingTask const&) (this=0x3d30f6c4f3e0, pending_task=From Notify()@../../mojo/public/cpp/system/simple_watcher.cc:121 = {...}) at ../../electron/shell/browser/microtasks_runner.cc:17
#2  0x00007ffff7d3d2ad in base::sequence_manager::internal::SequenceManagerImpl::NotifyDidProcessTask(base::sequence_manager::internal::SequenceManagerImpl::ExecutingTask*, base::sequence_manager::LazyNow*) (this=0x3d30f5c93020, executing_task=0x3d30f5c97820, time_after_task=0x7fffffffb670) at ./../../base/task/sequence_manager/sequence_manager_impl.cc:819
#3  0x00007ffff7d3cd1e in base::sequence_manager::internal::SequenceManagerImpl::DidRunTask() (this=0x3d30f5c93020) at ./../../base/task/sequence_manager/sequence_manager_impl.cc:636
#4  0x00007ffff7d53413 in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::sequence_manager::LazyNow*, bool*) (this=0x3d30f5c20820, continuation_lazy_now=0x7fffffffbcd8, ran_task=0x7fffffffbcf7) at ./../../base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:378
#5  0x00007ffff7d52b2b in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork() (this=0x3d30f5c20820) at ./../../base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:219
#6  0x00007ffff7d5361c in non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork() () at /home/charles/electron/electron-gn/src/out/debug/libbase.so
#7  0x00007ffff7c6697b in base::MessagePumpGlib::Run(base::MessagePump::Delegate*) (this=0x3d30f5cf53e0, delegate=0x3d30f5c20828) at ./../../base/message_loop/message_pump_glib.cc:426
#8  0x00007ffff7d54139 in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) (this=0x3d30f5c20820, application_tasks_allowed=true, timeout=106751991 days, 4:00:54.775807) at ./../../base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:463
#9  0x00007ffff7cefd81 in base::RunLoop::Run() (this=0x7fffffffc560) at ./../../base/run_loop.cc:156
#10 0x00007ffff3938c3a in content::BrowserMainLoop::MainMessageLoopRun() (this=0x3d30f5e1c700) at ./../../content/browser/browser_main_loop.cc:1487
#11 0x00007ffff3938aa4 in content::BrowserMainLoop::RunMainMessageLoopParts() (this=0x3d30f5e1c700) at ./../../content/browser/browser_main_loop.cc:1003
#12 0x00007ffff393b16e in content::BrowserMainRunnerImpl::Run() (this=0x3d30f5e3d2c0) at ./../../content/browser/browser_main_runner_impl.cc:149
#13 0x00007ffff393418a in content::BrowserMain(content::MainFunctionParams const&) (parameters=...) at ./../../content/browser/browser_main.cc:47
#14 0x00007ffff5c76c8d in content::RunBrowserProcessMain(content::MainFunctionParams const&, content::ContentMainDelegate*) (main_function_params=..., delegate=0x7fffffffd778) at ../../content/app/content_main_runner_impl.cc:544
#15 0x00007ffff5c78078 in content::ContentMainRunnerImpl::RunServiceManager(content::MainFunctionParams&, bool) (this=0x3d30f5bc9860, main_params=..., start_service_manager_only=false) at ../../content/app/content_main_runner_impl.cc:950
#16 0x00007ffff5c77aea in content::ContentMainRunnerImpl::Run(bool) (this=0x3d30f5bc9860, start_service_manager_only=false) at ../../content/app/content_main_runner_impl.cc:859
#17 0x00007ffff5c73898 in content::ContentServiceManagerMainDelegate::RunEmbedderProcess() (this=0x7fffffffd6e8) at ../../content/app/content_service_manager_main_delegate.cc:52
#18 0x00007fffc58ce74e in service_manager::Main(service_manager::MainParams const&) (params=...) at ../../services/service_manager/embedder/main.cc:423
#19 0x00007ffff5c767a3 in content::ContentMain(content::ContentMainParams const&) (params=...) at ../../content/app/content_main.cc:19
#20 0x00005555568cb1e6 in main(int, char**) (argc=2, argv=0x7fffffffd908) at ../../electron/shell/app/atom_main.cc:189

This sets the stage for the second call that occurs while the previous tasks are still running. Backtrace here matches Jeremy's:

#0  0x00007fffbb167632 in v8::base::OS::Abort() () at ../../v8/src/base/platform/platform-posix.cc:406
#1  0x00007fffbb15fba5 in V8_Fatal(char const*, int, char const*, ...) (file=<optimized out>, line=<optimized out>, format=0x7fffbb150cee "Debug check failed: %s.") at ../../v8/src/base/logging.cc:182
#2  0x00007fffbb15f885 in v8::base::(anonymous namespace)::DefaultDcheckHandler(char const*, int, char const*) (file=0x7fffcec53680 <_IO_2_1_stderr_> "\207(\255", <incomplete sequence \373>, line=-825928336, message=0xc00 <error: Cannot access memory at address 0xc00>) at ../../v8/src/base/logging.cc:57
#3  0x00007fffd95fe5fd in v8::internal::(anonymous namespace)::SetIsRunningMicrotasks::SetIsRunningMicrotasks(bool*) (this=<optimized out>, flag=0x3d30f6162250) at ./../../v8/src/execution/microtask-queue.cc:126
#4  0x00007fffd95fe5fd in v8::internal::MicrotaskQueue::RunMicrotasks(v8::internal::Isolate*) (this=0x3d30f6162200, isolate=0x3d30f6539020) at ./../../v8/src/execution/microtask-queue.cc:156
#5  0x00007fffd43faee8 in node::InternalCallbackScope::Close() (this=0x7fffffff9ab8) at ../../third_party/electron_node/src/api/callback.cc:103
#6  0x00007fffd43fb3da in node::InternalMakeCallback(node::Environment*, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*, node::async_context) (env=0x3d30f68bf120, recv=..., callback=..., argc=2, argv=0x3d30f6e501a0, asyncContext=...) at ../../third_party/electron_node/src/api/callback.cc:168
#7  0x00007fffd43fb73d in node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*, node::async_context) (isolate=0x3d30f6539020, recv=..., callback=..., argc=2, argv=0x3d30f6e501a0, asyncContext=...) at ../../third_party/electron_node/src/api/callback.cc:221
#8  0x00007fffd43fb64b in node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*, node::async_context) (isolate=0x3d30f6539020, recv=..., symbol=..., argc=2, argv=0x3d30f6e501a0, asyncContext=...) at ../../third_party/electron_node/src/api/callback.cc:201
#9  0x00007fffd43fb4ee in node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, char const*, int, v8::Local<v8::Value>*, node::async_context) (isolate=0x3d30f6539020, recv=..., method=0x5555557ab6f9 "emit", argc=2, argv=0x3d30f6e501a0, asyncContext=...) at ../../third_party/electron_node/src/api/callback.cc:187
#10 0x0000555556c43c19 in mate::internal::CallMethodWithArgs(v8::Isolate*, v8::Local<v8::Object>, char const*, std::__Cr::vector<v8::Local<v8::Value>, std::__Cr::allocator<v8::Local<v8::Value> > >*) (isolate=0x3d30f6539020, obj=..., method=0x5555557ab6f9 "emit", args=0x7fffffff9df0) at ../../electron/shell/common/api/event_emitter_caller.cc:23
#11 0x00005555568ec4e9 in mate::EmitEvent<base::BasicStringPiece<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char> > >, v8::Local<v8::Object>&>(v8::Isolate*, v8::Local<v8::Object>, base::BasicStringPiece<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char> > > const&, v8::Local<v8::Object>&) (isolate=0x3d30f6539020, obj=..., name=..., args=...) at ../../electron/shell/common/api/event_emitter_caller.h:51
#12 0x00005555569fd111 in mate::EventEmitter<electron::api::TopLevelWindow>::EmitWithEvent<>(base::BasicStringPiece<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char> > >, v8::Local<v8::Object>) (this=0x3d30f601a4c0, name=..., event=...) at ../../electron/shell/browser/api/event_emitter.h:112
#13 0x00005555569fcefc in mate::EventEmitter<electron::api::TopLevelWindow>::EmitWithSender<>(base::BasicStringPiece<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char> > >, content::RenderFrameHost*, base::Optional<base::OnceCallback<void (base::Value)> >) (this=0x3d30f601a4c0, name=..., sender=0x0, callback=...) at ../../electron/shell/browser/api/event_emitter.h:97
#14 0x00005555569f877f in mate::EventEmitter<electron::api::TopLevelWindow>::Emit<>(base::BasicStringPiece<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char> > >) (this=0x3d30f601a4c0, name=...) at ../../electron/shell/browser/api/event_emitter.h:76
#15 0x00005555569f0f85 in electron::api::TopLevelWindow::OnWindowClosed() (this=0x3d30f601a4a0) at ../../electron/shell/browser/api/atom_api_top_level_window.cc:159
#16 0x0000555556b54554 in electron::NativeWindow::NotifyWindowClosed() (this=0x3d30f6d65520) at ../../electron/shell/browser/native_window.cc:423
#17 0x0000555556b5cd5c in electron::NativeWindowViews::DeleteDelegate() (this=0x3d30f6d65520) at ../../electron/shell/browser/native_window_views.cc:1320
#18 0x00007fffd2faffe6 in views::Widget::OnNativeWidgetDestroyed() (this=0x3d30f67f3da0) at ./../../ui/views/widget/widget.cc:1158
#19 0x00007fffd30185a3 in views::DesktopNativeWidgetAura::OnHostClosed() (this=0x3d30f6b25a20) at ./../../ui/views/widget/desktop_aura/desktop_native_widget_aura.cc:332
#20 0x00007fffd3024711 in views::DesktopWindowTreeHostX11::CloseNow() (this=0x3d30f6f5af20) at ./../../ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc:401
#21 0x00007fffd301a646 in views::DesktopNativeWidgetAura::CloseNow() (this=0x3d30f6b25a20) at ./../../ui/views/widget/desktop_aura/desktop_native_widget_aura.cc:766
#22 0x00007fffd2fae038 in views::Widget::CloseNow() (this=0x3d30f67f3da0) at ./../../ui/views/widget/widget.cc:621
#23 0x0000555556b5a650 in electron::NativeWindowViews::CloseImmediately() (this=0x3d30f6d65520) at ../../electron/shell/browser/native_window_views.cc:353
#24 0x00005555569f09bd in electron::api::TopLevelWindow::~TopLevelWindow() (this=0x3d30f601a4a0) at ../../electron/shell/browser/api/atom_api_top_level_window.cc:118
#25 0x0000555556ac7be8 in electron::api::BrowserWindow::~BrowserWindow() (this=0x3d30f601a4a0) at ../../electron/shell/browser/api/atom_api_browser_window.cc:102
#26 0x0000555556ac7d6c in electron::api::BrowserWindow::~BrowserWindow() (this=0x3d30f601a4a0) at ../../electron/shell/browser/api/atom_api_browser_window.cc:94
#27 0x000055555774fe12 in mate::internal::Destroyable::Destroy(mate::Arguments*) (args=0x7fffffffaa40) at ../../electron/native_mate/native_mate/function_template.h:29
#28 0x0000555556ad2f82 in base::internal::FunctorTraits<void (*)(mate::Arguments*), void>::Invoke<void (* const&)(mate::Arguments*), mate::Arguments*>(void (* const&)(mate::Arguments*), mate::Arguments*&&) (function=@0x3d30f686b700: 0x55555774fdb0 <mate::internal::Destroyable::Destroy(mate::Arguments*)>, args=@0x7fffffffa950: 0x7fffffffaa40) at ../../base/bind_internal.h:399
#29 0x0000555556ad2f32 in base::internal::InvokeHelper<false, void>::MakeItSo<void (* const&)(mate::Arguments*), mate::Arguments*>(void (* const&)(mate::Arguments*), mate::Arguments*&&) (functor=@0x3d30f686b700: 0x55555774fdb0 <mate::internal::Destroyable::Destroy(mate::Arguments*)>, args=@0x7fffffffa950: 0x7fffffffaa40) at ../../base/bind_internal.h:599
#30 0x0000555556ad2ef6 in base::internal::Invoker<base::internal::BindState<void (*)(mate::Arguments*)>, void (mate::Arguments*)>::RunImpl<void (* const&)(mate::Arguments*), std::__Cr::tuple<> const&>(void (* const&)(mate::Arguments*), std::__Cr::tuple<> const&, std::__Cr::integer_sequence<unsigned long>, mate::Arguments*&&) (functor=@0x3d30f686b700: 0x55555774fdb0 <mate::internal::Destroyable::Destroy(mate::Arguments*)>, bound=Python Exception <class 'gdb.error'> There is no member or method named __base_.: 
empty std::tuple, unbound_args=@0x7fffffffa950: 0x7fffffffaa40) at ../../base/bind_internal.h:672
#31 0x0000555556ad2e5e in base::internal::Invoker<base::internal::BindState<void (*)(mate::Arguments*)>, void (mate::Arguments*)>::Run(base::internal::BindStateBase*, mate::Arguments*) (base=0x3d30f686b6e0, unbound_args=0x7fffffffaa40) at ../../base/bind_internal.h:654
#32 0x00005555568f2035 in base::RepeatingCallback<void (mate::Arguments*)>::Run(mate::Arguments*) const & (this=0x7fffffffaa08, args=0x7fffffffaa40) at ../../base/callback.h:132
#33 0x00005555568f1d33 in mate::internal::Invoker<mate::internal::IndicesHolder<0ul>, mate::Arguments*>::DispatchToCallback(base::RepeatingCallback<void (mate::Arguments*)>) (this=0x7fffffffaa10, callback=...) at ../../electron/native_mate/native_mate/function_template.h:220
#34 0x000055555690134c in mate::internal::Dispatcher<void (mate::Arguments*)>::DispatchToCallback(v8::FunctionCallbackInfo<v8::Value> const&) (info=...) at ../../electron/native_mate/native_mate/function_template.h:254
#35 0x00007fffd94e3c7c in v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) (this=0x7fffffffab88, handler=...) at ../../v8/src/api/api-arguments-inl.h:158
#36 0x00007fffd94806f4 in v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) (isolate=0x3d30f6539020, function=..., new_target=..., fun_data=..., receiver=..., args=...) at ./../../v8/src/builtins/builtins-api.cc:111
#37 0x00007fffd947ea76 in v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*) (args=..., isolate=0x3d30f6539020) at ./../../v8/src/builtins/builtins-api.cc:141
#38 0x00007fffd947e42d in v8::internal::Builtin_HandleApiCall(int, unsigned long*, v8::internal::Isolate*) (args_length=5, args_object=0x7fffffffadd0, isolate=0x3d30f6539020) at ./../../v8/src/builtins/builtins-api.cc:129
#39 0x00007fffda3c6e60 in Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_BuiltinExit () at /home/charles/electron/electron-gn/src/out/debug/libv8.so
#40 0x00007fffda17ecb2 in Builtins_InterpreterEntryTrampoline () at /home/charles/electron/electron-gn/src/out/debug/libv8.so

@codebytere
Copy link
Member

I've opened nodejs/node#29434 to address this ☝️

@codebytere
Copy link
Member

Closed by nodejs/node#29434.

@deepak1556
Copy link
Member

vscode was seeing slow startup times when upgrading to E8 compared to E7, turns out this change was source of the slowdown microsoft/vscode#97638 (comment). I am yet to make a minimal repro, any thoughts in debugging further is appreciated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants