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

Issue 842825 link

Starred by 1 user

Issue metadata

Status: Duplicate
Owner: ----
Closed: May 2018
Cc:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug



Sign in to add a comment

chrome browser hang in ProcessMemoryMetricsEmitter::ReceivedMemoryDump

Project Member Reported by wfh@chromium.org, May 14 2018

Issue description

Chrome Version: 68.0.3430.0
OS: Win10

What steps will reproduce the problem?
(1) Was just browsing around
(2)
(3)

What is the expected result?

Browser remains responsive.

What happens instead?

Total browser hang.


I attach windbg and do a few stack traces, the main thread seems to be hung in ProcessMemoryMetricsEmitter::GetNumberOfExtensions

 # Child-SP          RetAddr           Call Site
00 000000fa`3c9fdb60 00007ffa`73533456 chrome_7ffa71450000!content::RenderProcessHostImpl::GetProcess+0xc5 [C:\b\c\b\win64_clang\src\content\browser\renderer_host\render_process_host_impl.cc @ 2899]
01 000000fa`3c9fdbb0 00007ffa`73532ff0 chrome_7ffa71450000!ProcessMemoryMetricsEmitter::GetNumberOfExtensions+0x5a [C:\b\c\b\win64_clang\src\chrome\browser\metrics\process_memory_metrics_emitter.cc @ 382]
02 000000fa`3c9fdc60 00007ffa`73532d94 chrome_7ffa71450000!ProcessMemoryMetricsEmitter::CollateResults+0x24e [C:\b\c\b\win64_clang\src\chrome\browser\metrics\process_memory_metrics_emitter.cc @ 464]
03 000000fa`3c9fdd50 00007ffa`7249fc29 chrome_7ffa71450000!ProcessMemoryMetricsEmitter::ReceivedMemoryDump+0x34 [C:\b\c\b\win64_clang\src\chrome\browser\metrics\process_memory_metrics_emitter.cc @ 350]
04 (Inline Function) --------`-------- chrome_7ffa71450000!base::internal::FunctorTraits<void (extensions::SocketAcceptFunction::*)(int, std::unique_ptr<net::TCPClientSocket,std::default_delete<net::TCPClientSocket> >),void>::Invoke+0x20 [C:\b\c\b\win64_clang\src\base\bind_internal.h @ 447]
05 (Inline Function) --------`-------- chrome_7ffa71450000!base::internal::InvokeHelper<0,void>::MakeItSo+0x24 [C:\b\c\b\win64_clang\src\base\bind_internal.h @ 547]
06 (Inline Function) --------`-------- chrome_7ffa71450000!base::internal::Invoker<base::internal::BindState<void (extensions::SocketAcceptFunction::*)(int, std::unique_ptr<net::TCPClientSocket,std::default_delete<net::TCPClientSocket> >),scoped_refptr<extensions::SocketAcceptFunction> >,void (int, std::unique_ptr<net::TCPClientSocket,std::default_delete<net::TCPClientSocket> >)>::RunImpl+0x24 [C:\b\c\b\win64_clang\src\base\bind_internal.h @ 621]
07 000000fa`3c9fdd90 00007ffa`72e4fbc3 chrome_7ffa71450000!base::internal::Invoker<base::internal::BindState<void (extensions::SocketAcceptFunction::*)(int, std::unique_ptr<net::TCPClientSocket,std::default_delete<net::TCPClientSocket> >),scoped_refptr<extensions::SocketAcceptFunction> >,void (int, std::unique_ptr<net::TCPClientSocket,std::default_delete<net::TCPClientSocket> >)>::Run+0x37 [C:\b\c\b\win64_clang\src\base\bind_internal.h @ 603]
08 (Inline Function) --------`-------- chrome_7ffa71450000!base::RepeatingCallback<void (bool, std::unique_ptr<memory_instrumentation::GlobalMemoryDump,std::default_delete<memory_instrumentation::GlobalMemoryDump> >)>::Run+0xb [C:\b\c\b\win64_clang\src\base\callback.h @ 125]
09 000000fa`3c9fddd0 00007ffa`72e4fe97 chrome_7ffa71450000!memory_instrumentation::`anonymous namespace'::WrapGlobalMemoryDump+0x49 [C:\b\c\b\win64_clang\src\services\resource_coordinator\public\cpp\memory_instrumentation\memory_instrumentation.cc @ 23]
0a (Inline Function) --------`-------- chrome_7ffa71450000!base::internal::FunctorTraits<void (*)(base::RepeatingCallback<void (bool, std::unique_ptr<memory_instrumentation::GlobalMemoryDump,std::default_delete<memory_instrumentation::GlobalMemoryDump> >)>, bool, mojo::StructPtr<memory_instrumentation::mojom::GlobalMemoryDump>),void>::Invoke+0x31 [C:\b\c\b\win64_clang\src\base\bind_internal.h @ 402]
0b (Inline Function) --------`-------- chrome_7ffa71450000!base::internal::InvokeHelper<0,void>::MakeItSo+0x31 [C:\b\c\b\win64_clang\src\base\bind_internal.h @ 547]
0c (Inline Function) --------`-------- chrome_7ffa71450000!base::internal::Invoker<base::internal::BindState<void (*)(base::RepeatingCallback<void (bool, std::unique_ptr<memory_instrumentation::GlobalMemoryDump,std::default_delete<memory_instrumentation::GlobalMemoryDump> >)>, bool, mojo::StructPtr<memory_instrumentation::mojom::GlobalMemoryDump>),base::RepeatingCallback<void (bool, std::unique_ptr<memory_instrumentation::GlobalMemoryDump,std::default_delete<memory_instrumentation::GlobalMemoryDump> >)> >,void (bool, mojo::StructPtr<memory_instrumentation::mojom::GlobalMemoryDump>)>::RunImpl+0x31 [C:\b\c\b\win64_clang\src\base\bind_internal.h @ 621]
0d 000000fa`3c9fde30 00007ffa`7236885d chrome_7ffa71450000!base::internal::Invoker<base::internal::BindState<void (*)(base::RepeatingCallback<void (bool, std::unique_ptr<memory_instrumentation::GlobalMemoryDump,std::default_delete<memory_instrumentation::GlobalMemoryDump> >)>, bool, mojo::StructPtr<memory_instrumentation::mojom::GlobalMemoryDump>),base::RepeatingCallback<void (bool, std::unique_ptr<memory_instrumentation::GlobalMemoryDump,std::default_delete<memory_instrumentation::GlobalMemoryDump> >)> >,void (bool, mojo::StructPtr<memory_instrumentation::mojom::GlobalMemoryDump>)>::Run+0x4b [C:\b\c\b\win64_clang\src\base\bind_internal.h @ 603]
0e 000000fa`3c9fde90 00007ffa`72e57a45 chrome_7ffa71450000!base::OnceCallback<void (bool, mojo::StructPtr<memory_instrumentation::mojom::GlobalMemoryDump>)>::Run+0x39 [C:\b\c\b\win64_clang\src\base\callback.h @ 97]
0f 000000fa`3c9fdee0 00007ffa`71546a09 chrome_7ffa71450000!memory_instrumentation::mojom::Coordinator_RequestGlobalMemoryDump_ForwardToCallback::Accept+0xad [C:\b\c\b\win64_clang\src\out\Release_x64\gen\services\resource_coordinator\public\mojom\memory_instrumentation\memory_instrumentation.mojom.cc @ 2313]
10 000000fa`3c9fdf90 00007ffa`71545927 chrome_7ffa71450000!mojo::InterfaceEndpointClient::HandleValidatedMessage+0x237 [C:\b\c\b\win64_clang\src\mojo\public\cpp\bindings\lib\interface_endpoint_client.cc @ 414]
11 000000fa`3c9fe010 00007ffa`7154546d chrome_7ffa71450000!mojo::internal::MultiplexRouter::ProcessIncomingMessage+0x17b [C:\b\c\b\win64_clang\src\mojo\public\cpp\bindings\lib\multiplex_router.cc @ 864]
12 000000fa`3c9fe0e0 00007ffa`715441fc chrome_7ffa71450000!mojo::internal::MultiplexRouter::Accept+0xc7 [C:\b\c\b\win64_clang\src\mojo\public\cpp\bindings\lib\multiplex_router.cc @ 593]
13 000000fa`3c9fe2a0 00007ffa`71544078 chrome_7ffa71450000!mojo::Connector::ReadSingleMessage+0xfe [C:\b\c\b\win64_clang\src\mojo\public\cpp\bindings\lib\connector.cc @ 442]
14 000000fa`3c9fe440 00007ffa`71543f57 chrome_7ffa71450000!mojo::Connector::ReadAllAvailableMessages+0x62 [C:\b\c\b\win64_clang\src\mojo\public\cpp\bindings\lib\connector.cc @ 472]
15 (Inline Function) --------`-------- chrome_7ffa71450000!base::RepeatingCallback<void (unsigned int, const mojo::HandleSignalsState &)>::Run+0xd [C:\b\c\b\win64_clang\src\base\callback.h @ 125]
16 000000fa`3c9fe4b0 00007ffa`71475745 chrome_7ffa71450000!mojo::SimpleWatcher::OnHandleReady+0xab [C:\b\c\b\win64_clang\src\mojo\public\cpp\system\simple_watcher.cc @ 275]
17 (Inline Function) --------`-------- chrome_7ffa71450000!base::OnceCallback<void ()>::Run+0x1e [C:\b\c\b\win64_clang\src\base\callback.h @ 96]
18 000000fa`3c9fe520 00007ffa`714751ec chrome_7ffa71450000!base::debug::TaskAnnotator::RunTask+0x135 [C:\b\c\b\win64_clang\src\base\debug\task_annotator.cc @ 101]
19 000000fa`3c9fe640 00007ffa`71474c38 chrome_7ffa71450000!base::MessageLoop::RunTask+0x23c [C:\b\c\b\win64_clang\src\base\message_loop\message_loop.cc @ 320]
1a (Inline Function) --------`-------- chrome_7ffa71450000!base::MessageLoop::DeferOrRunPendingTask+0x96 [C:\b\c\b\win64_clang\src\base\message_loop\message_loop.cc @ 329]
1b 000000fa`3c9fe7a0 00007ffa`71581649 chrome_7ffa71450000!base::MessageLoop::DoWork+0x198 [C:\b\c\b\win64_clang\src\base\message_loop\message_loop.cc @ 373]
1c 000000fa`3c9fe990 00007ffa`714bf2f8 chrome_7ffa71450000!base::MessagePumpForUI::DoRunLoop+0xa9 [C:\b\c\b\win64_clang\src\base\message_loop\message_pump_win.cc @ 174]
1d 000000fa`3c9fea40 00007ffa`714747b1 chrome_7ffa71450000!base::MessagePumpWin::Run+0x68 [C:\b\c\b\win64_clang\src\base\message_loop\message_pump_win.cc @ 58]
1e 000000fa`3c9feaa0 00007ffa`7183fc61 chrome_7ffa71450000!base::RunLoop::Run+0x31 [C:\b\c\b\win64_clang\src\base\run_loop.cc @ 137]
1f 000000fa`3c9fead0 00007ffa`7183fa58 chrome_7ffa71450000!ChromeBrowserMainParts::MainMessageLoopRun+0x9f [C:\b\c\b\win64_clang\src\chrome\browser\chrome_browser_main.cc @ 2145]
20 000000fa`3c9febc0 00007ffa`7183fa03 chrome_7ffa71450000!content::BrowserMainLoop::RunMainMessageLoopParts+0x48 [C:\b\c\b\win64_clang\src\content\browser\browser_main_loop.cc @ 978]
21 000000fa`3c9fec80 00007ffa`7203b447 chrome_7ffa71450000!content::BrowserMainRunnerImpl::Run+0x11 [C:\b\c\b\win64_clang\src\content\browser\browser_main_runner_impl.cc @ 170]
22 000000fa`3c9fecb0 00007ffa`725483db chrome_7ffa71450000!content::BrowserMain+0xdf [C:\b\c\b\win64_clang\src\content\browser\browser_main.cc @ 51]
23 000000fa`3c9feda0 00007ffa`714699f6 chrome_7ffa71450000!content::RunBrowserProcessMain+0x8b [C:\b\c\b\win64_clang\src\content\app\content_main_runner_impl.cc @ 619]
24 000000fa`3c9fee20 00007ffa`714558d3 chrome_7ffa71450000!content::ContentMainRunnerImpl::Run+0x21a [C:\b\c\b\win64_clang\src\content\app\content_main_runner_impl.cc @ 959]
25 000000fa`3c9fefd0 00007ffa`71455168 chrome_7ffa71450000!service_manager::Main+0x6ed [C:\b\c\b\win64_clang\src\services\service_manager\embedder\main.cc @ 459]
26 000000fa`3c9ff300 00007ffa`71451c02 chrome_7ffa71450000!content::ContentMain+0x41 [C:\b\c\b\win64_clang\src\content\app\content_main.cc @ 19]
27 000000fa`3c9ff390 00007ff7`a571354c chrome_7ffa71450000!ChromeMain+0x120 [C:\b\c\b\win64_clang\src\chrome\app\chrome_main.cc @ 104]
28 000000fa`3c9ff470 00007ff7`a5711699 chrome!MainDllLoader::Launch+0x26c [C:\b\c\b\win64_clang\src\chrome\app\main_dll_loader_win.cc @ 201]
29 000000fa`3c9ff560 00007ff7`a57ecd33 chrome!wWinMain+0x699 [C:\b\c\b\win64_clang\src\chrome\app\chrome_exe_main_win.cc @ 230]
2a (Inline Function) --------`-------- chrome!invoke_main+0x21 [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl @ 118]
2b 000000fa`3c9ff940 00007ffa`a7c41fe4 chrome!__scrt_common_main_seh+0x117 [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl @ 283]
2c 000000fa`3c9ff980 00007ffa`a845f061 KERNEL32!BaseThreadInitThunk+0x14
2d 000000fa`3c9ff9b0 00000000`00000000 ntdll!RtlUserThreadStart+0x21


Seems to loop between:

 # Child-SP          RetAddr           Call Site
00 000000fa`3c9fdba8 00007ffa`7353344a chrome_7ffa71450000!base::IDMap<aura::Window *,int>::Iterator<const aura::Window>::GetCurrentValue [C:\b\c\b\win64_clang\src\base\containers\id_map.h @ 180]
01 000000fa`3c9fdbb0 00007ffa`73532ff0 chrome_7ffa71450000!ProcessMemoryMetricsEmitter::GetNumberOfExtensions+0x4e [C:\b\c\b\win64_clang\src\chrome\browser\metrics\process_memory_metrics_emitter.cc @ 382]

 # Child-SP          RetAddr           Call Site
00 000000fa`3c9fdb48 00007ffa`7185ff69 chrome_7ffa71450000!base::internal::flat_tree<int,int,base::internal::GetKeyFromValueIdentity<int>,std::less<void> >::equal_range<int> [C:\b\c\b\win64_clang\src\base\containers\flat_tree.h @ 876]
01 (Inline Function) --------`-------- chrome_7ffa71450000!base::internal::flat_tree<int,int,base::internal::GetKeyFromValueIdentity<int>,std::less<void> >::find+0x8 [C:\b\c\b\win64_clang\src\base\containers\flat_tree.h @ 861]
02 (Inline Function) --------`-------- chrome_7ffa71450000!base::IDMap<aura::Window *,int>::IsRemoved+0x11 [C:\b\c\b\win64_clang\src\base\containers\id_map.h @ 256]
03 000000fa`3c9fdb50 00007ffa`7353344a chrome_7ffa71450000!base::IDMap<aura::Window *,int>::Iterator<const aura::Window>::GetCurrentValue+0x43 [C:\b\c\b\win64_clang\src\base\containers\id_map.h @ 182]
04 000000fa`3c9fdbb0 00007ffa`73532ff0 chrome_7ffa71450000!ProcessMemoryMetricsEmitter::GetNumberOfExtensions+0x4e [C:\b\c\b\win64_clang\src\chrome\browser\metrics\process_memory_metrics_emitter.cc @ 382]

 # Child-SP          RetAddr           Call Site
00 000000fa`3c9fdba0 00007ffa`73533456 chrome_7ffa71450000!content::RenderProcessHostImpl::GetProcess+0x1 [C:\b\c\b\win64_clang\src\content\browser\renderer_host\render_process_host_impl.cc @ 2889]
01 000000fa`3c9fdbb0 00007ffa`73532ff0 chrome_7ffa71450000!ProcessMemoryMetricsEmitter::GetNumberOfExtensions+0x5a [C:\b\c\b\win64_clang\src\chrome\browser\metrics\process_memory_metrics_emitter.cc @ 382]
02 000000fa`3c9fdc60 00007ffa`73532d94 chrome_7ffa71450000!ProcessMemoryMetricsEmitter::CollateResults+0x24e [C:\b\c\b\win64_clang\src\chrome\browser\metrics\process_memory_metrics_emitter.cc @ 464]

some kind of bug in the loop? I grabbed a memory dump (ref: chrome-2018-05-14-hang.dmp) if you want it.
 

Comment 1 by wfh@chromium.org, May 14 2018

Cc: alemate@chromium.org tasak@chromium.org
Mergedinto: 842790
Status: Duplicate (was: Untriaged)

Sign in to add a comment