New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 777133 link

Starred by 2 users

Issue metadata

Status: WontFix
Owner:
Closed: Dec 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 3
Type: Bug



Sign in to add a comment

Hang on mac

Reported by bmau...@fb.com, Oct 21 2017

Issue description

62.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
 
Spindump.txt
12.2 MB View Download
Cc: shrike@chromium.org
Labels: Performance-Loading Needs-Triage-M62 OS-Mac

Comment 2 by shrike@chromium.org, Oct 23 2017

Cc: erikc...@chromium.org
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?

symbolized_hang.txt
606 KB View Download
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.

Labels: -Performance-Loading

Comment 5 by sdy@chromium.org, Dec 7 2017

Cc: -erikc...@chromium.org
Owner: erikc...@chromium.org
Status: Assigned (was: Untriaged)
Status: WontFix (was: Assigned)
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