Hang on mac
Reported by
bmau...@fb.com,
Oct 21 2017
|
|||||
Issue description62.0.3202.62 (Official Build) (64-bit) What steps will reproduce the problem? Unsure What is the expected result? Chrome doesn't hang What happens instead? All of chrome became unresponsive. I was able to acquire a spindump which I'm hoping will be useful in debugging
,
Oct 23 2017
I symbolicated all of the Chrome processes that seemed to be doing something other than waiting. I don't believe I missed any but I may have. erkichen@ - can you tease out from these processes why the browser process is hung?
,
Oct 23 2017
The browser process is blocked waiting on sync IPC to the GPU process.
1001 base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) (Google Chrome Framework + 28862884) [callback_forward.h:11]
1001 content::(anonymous namespace)::ReleaseSpareCompositors() (Google Chrome Framework + 11247914) [deque:2568]
1001 content::RecyclableCompositorMac::~RecyclableCompositorMac() (Google Chrome Framework + 11246286) [browser_compositor_view_mac.mm:115]
1001 content::RecyclableCompositorMac::~RecyclableCompositorMac() (Google Chrome Framework + 11246134) [memory:2543]
1001 ui::Compositor::~Compositor() (Google Chrome Framework + 55566027) [compositor.cc:226]
1001 cc::LayerTreeHost::~LayerTreeHost() (Google Chrome Framework + 40643630) [layer_tree_host.cc:168]
1001 cc::LayerTreeHost::~LayerTreeHost() (Google Chrome Framework + 40642260) [memory:2543]
1001 cc::SingleThreadProxy::Stop() (Google Chrome Framework + 40924123) [memory:2543]
1001 cc::LayerTreeHostImpl::ReleaseLayerTreeFrameSink() (Google Chrome Framework + 40714212) [layer_tree_host_impl.cc:2529]
1001 cc::LayerTreeResourceProvider::~LayerTreeResourceProvider() (Google Chrome Framework + 40330718) [layer_tree_resource_provider.cc:33]
1001 cc::ResourceProvider::~ResourceProvider() (Google Chrome Framework + 40353646) [map:805]
1001 gpu::gles2::GLES2Implementation::FinishHelper() (Google Chrome Framework + 43642917) [gles2_implementation.cc:1452]
1001 gpu::CommandBufferHelper::Finish() (Google Chrome Framework + 696906) [cmd_buffer_helper.cc:167]
1001 gpu::CommandBufferProxyImpl::WaitForGetOffsetInRange(unsigned int, int, int) (Google Chrome Framework + 788933) [command_buffer_proxy_impl.cc:691]
1001 IPC::SyncChannel::Send(IPC::Message*) (Google Chrome Framework + 31403239) [atomic:922]
1001 IPC::SyncChannel::WaitForReply(mojo::SyncHandleRegistry*, IPC::SyncChannel::SyncContext*, bool) (Google Chrome Framework + 31404680) [ref_counted.h:538]
1001 mojo::SyncHandleRegistry::Wait(bool const**, unsigned long) (Google Chrome Framework + 29677664) [sync_handle_registry.cc:141]
1001 mojo::WaitSet::State::Wait(base::WaitableEvent**, unsigned long*, mojo::Handle*, unsigned int*, MojoHandleSignalsState*) (Google Chrome Framework + 29693052) [wait_set.cc:205]
1001 kevent64 + 10 (libsystem_kernel.dylib + 109998) [0x7fffa6652dae]
*1001 ??? (kernel + 5621728) [0xffffff800075c7e0]
Most renderers are stuck waiting for the browser process.
"""
1001 v8::internal::InvokeFunctionCallback(v8::FunctionCallbackInfo<v8::Value> const&, void (*)(v8::FunctionCallbackInfo<v8::Value> const&)) (Google Chrome Framework + 15442785) [vm-state-inl.h:74]
1001 blink::V8Document::cookieAttributeGetterCallback(v8::FunctionCallbackInfo<v8::Value> const&) (Google Chrome Framework + 74531125) [ExceptionState.h:120]
1001 blink::Document::cookie(blink::ExceptionState&) const (Google Chrome Framework + 80017633) [Document.cpp:0]
1001 blink::Cookies(blink::Document const*, blink::KURL const&) (Google Chrome Framework + 86081076) [CookieJar.cpp:55]
1001 content::RendererWebCookieJarImpl::Cookies(blink::WebURL const&, blink::WebURL const&) (Google Chrome Framework + 95753934) [renderer_webcookiejar_impl.cc:30]
1001 content::mojom::RenderFrameMessageFilterProxy::GetCookies(int, GURL const&, GURL const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) (Google Chrome Framework + 3066672) [memory:2543]
1001 mojo::InterfaceEndpointClient::AcceptWithResponder(mojo::Message*, std::__1::unique_ptr<mojo::MessageReceiver, std::__1::default_delete<mojo::MessageReceiver> >) (Google Chrome Framework + 29636523) [weak_ptr.h:239]
1001 mojo::SyncEventWatcher::SyncWatch(bool const*) (Google Chrome Framework + 29675578) [sync_event_watcher.cc:42]
1001 mojo::SyncHandleRegistry::Wait(bool const**, unsigned long) (Google Chrome Framework + 29677664) [sync_handle_registry.cc:141]
1001 mojo::WaitSet::State::Wait(base::WaitableEvent**, unsigned long*, mojo::Handle*, unsigned int*, MojoHandleSignalsState*) (Google Chrome Framework + 29693052) [wait_set.cc:205]
1000 kevent64 + 10 (libsystem_kernel.dylib + 109998) [0x7fffa6652dae]
*999 ??? (kernel + 5621728) [0xffffff800075c7e0]
"""
One renderer """Google Chrome Helper (Chrome Helper) [43826]""" has a very-corrupted main thread.
There is no Gpu process. [Search for CrGpuMain has no results]. This suggests that the gpu process died, but the browser process is still stuck in sync IPC. This could be caused by a recent bug I fixed in Mojo: https://bugs.chromium.org/p/chromium/issues/detail?id=771805, whereby mojo connections on macOS sometimes don't receive the "disconnect" message. Otherwise, no ideas.
,
Nov 16 2017
,
Dec 7 2017
,
Dec 7 2017
Please reopen a new bug if you see this behavior on latest Canary - I think it should be fixed. |
|||||
►
Sign in to add a comment |
|||||
Comment 1 by manoranj...@chromium.org
, Oct 23 2017Labels: Performance-Loading Needs-Triage-M62 OS-Mac