New issue
Advanced search Search tips

Issue 884686 link

Starred by 2 users

Issue metadata

Status: Untriaged
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 1
Type: Bug-Regression

Blocking:
issue 882843



Sign in to add a comment

Chrome: Crash Report - [Out of Memory] base::internal::MessageLoopTaskRunner::AddToIncomingQueue

Project Member Reported by crash-fe...@system.gserviceaccount.com, Sep 17

Issue description

reporter:pnangunoori@google.com

Magic Signature: [Out of Memory] base::internal::MessageLoopTaskRunner::AddToIncomingQueue

Crash link: https://crash.corp.google.com/browse?q=product_name%3D%27Chrome%27+AND+expanded_custom_data.ChromeCrashProto.ptype%3D%27browser%27+AND+expanded_custom_data.ChromeCrashProto.magic_signature_1.name%3D%27%5BOut+of+Memory%5D+base%3A%3Ainternal%3A%3AMessageLoopTaskRunner%3A%3AAddToIncomingQueue%27+AND+product.Version%3D%2770.0.3538.16%27&stbtiq=&reportid=&index=0

-------------------------------------------------------------------------------
Sample Report
-------------------------------------------------------------------------------
Product name: Chrome
Magic Signature : [Out of Memory] base::internal::MessageLoopTaskRunner::AddToIncomingQueue
Product Version: 70.0.3538.16
Process type: browser
Report ID: 8c965d7ab2325531
Report Url: https://crash.corp.google.com/8c965d7ab2325531
Report Time: 2018-09-17T04:10:39-07:00
Upload Time: 2018-09-17T04:11:35.997-07:00
Uptime: 450000 ms
OS Name: Windows NT
OS Version: 6.1.7601 17514
CPU Architecture: x86
CPU Info: GenuineIntel family 6 model 15 stepping 13

-------------------------------------------------------------------------------
Crashing thread: Thread index: 2. Stack Quality: 87%. Thread id: 424.
-------------------------------------------------------------------------------
0x7586b760 (KERNELBASE.dll + 0x0000b760)	RaiseException
0x5bbc089c (chrome.dll - memory_win.cc: 51)	base::`anonymous namespace'::OnNoMemory
0x5c00bc80 (chrome.dll - winheap_stubs_win.cc: 90)	base::allocator::WinCallNewHandler(unsigned int)
0x5ac2157f (chrome.dll - allocator_shim_override_ucrt_symbols_win.h: 53)	malloc
0x5ac7e502 (chrome.dll - circular_deque.h: 960)	base::circular_deque<base::PendingTask>::ExpandCapacityIfNecessary(unsigned int)
0x5ac7e357 (chrome.dll - message_loop_task_runner.cc: 162)	base::internal::MessageLoopTaskRunner::AddToIncomingQueue(base::Location const &,base::OnceCallback<void >,base::TimeDelta,base::Nestable)
0x5ac7e193 (chrome.dll - message_loop_task_runner.cc: 55)	base::internal::MessageLoopTaskRunner::PostDelayedTask(base::Location const &,base::OnceCallback<void >,base::TimeDelta)
0x5ac4c88f (chrome.dll - task_runner.cc: 44)	base::TaskRunner::PostTask(base::Location const &,base::OnceCallback<void >)
0x5b18fa76 (chrome.dll - ipc_channel_proxy.cc: 128)	IPC::ChannelProxy::Context::OnMessageReceivedNoFilter(IPC::Message const &)
0x5b17c785 (chrome.dll - ipc_channel_proxy.cc: 122)	IPC::ChannelProxy::Context::OnMessageReceived(IPC::Message const &)
0x5b0750c8 (chrome.dll - ipc_channel_mojo.cc: 263)	IPC::ChannelMojo::OnMessageReceived(IPC::Message const &)
0x5b074e4b (chrome.dll - ipc_message_pipe_reader.cc: 107)	IPC::internal::MessagePipeReader::Receive(IPC::MessageView)
0x5b073268 (chrome.dll - ipc.mojom.cc: 295)	IPC::mojom::ChannelStubDispatch::Accept(IPC::mojom::Channel *,mojo::Message *)
0x5b073084 (chrome.dll - ipc.mojom.h: 328)	IPC::mojom::ChannelStub<mojo::RawPtrImplRefTraits<IPC::mojom::Channel> >::Accept(mojo::Message *)
0x5c099d85 (chrome.dll - ipc_mojo_bootstrap.cc: 838)	IPC::`anonymous namespace'::ChannelAssociatedGroupController::Accept
0x5acef2d0 (chrome.dll - connector.cc: 456)	mojo::Connector::ReadSingleMessage(unsigned int *)
0x5acef16b (chrome.dll - connector.cc: 486)	mojo::Connector::ReadAllAvailableMessages()
0x5acef11e (chrome.dll - connector.cc: 387)	mojo::Connector::OnHandleReadyInternal(unsigned int)
0x5b27978e (chrome.dll - bind_internal.h: 658)	base::internal::Invoker<base::internal::BindState<bool (DownloadsListTracker::*)(const download::DownloadItem &) __attribute__((thiscall)) const,base::internal::UnretainedWrapper<DownloadsListTracker> >,bool (const download::DownloadItem &)>::Run
0x5acef0f0 (chrome.dll - simple_watcher.h: 194)	favicon::FaviconService::FaviconResultsCallbackRunner(base::RepeatingCallback<void > const &,std::vector<favicon_base::FaviconRawBitmapResult,std::allocator<favicon_base::FaviconRawBitmapResult> > const *)
0x5b538334 (chrome.dll - bind_internal.h: 671)	base::internal::Invoker<base::internal::BindState<(anonymous namespace)::ComparisonType (*)(const base::RepeatingCallback<bool (const download::DownloadItem &)> &, const download::DownloadItem &, const download::DownloadItem &),base::RepeatingCallback<bool (const download::DownloadItem &)> >,(anonymous namespace)::ComparisonType (const download::DownloadItem &, const download::DownloadItem &)>::Run
0x5acef05c (chrome.dll - simple_watcher.cc: 273)	mojo::SimpleWatcher::OnHandleReady(int,unsigned int,mojo::HandleSignalsState const &)
0x5aceefca (chrome.dll - bind_internal.h: 671)	base::internal::Invoker<base::internal::BindState<void (mojo::SimpleWatcher::*)(int, unsigned int, const mojo::HandleSignalsState &) __attribute__((thiscall)),base::WeakPtr<mojo::SimpleWatcher>,int,unsigned int,mojo::HandleSignalsState>,void ()>::Run
0x5acb0e81 (chrome.dll - task_annotator.cc: 101)	base::debug::TaskAnnotator::RunTask(char const *,base::PendingTask *)
0x5acb3a32 (chrome.dll - message_loop.cc: 434)	base::MessageLoop::RunTask(base::PendingTask *)
0x5acb3952 (chrome.dll - message_loop.cc: 445)	base::MessageLoop::DeferOrRunPendingTask(base::PendingTask)
0x5ac3a0cb (chrome.dll - message_loop.cc: 517)	base::MessageLoop::DoWork()
0x5ac39ff4 (chrome.dll - message_pump_win.cc: 494)	base::MessagePumpForIO::DoRunLoop()
0x5ac39ea0 (chrome.dll - message_pump_win.cc: 52)	base::MessagePumpWin::Run(base::MessagePump::Delegate *)
0x5ac39e3e (chrome.dll - message_loop.cc: 386)	base::MessageLoop::Run(bool)
0x5ac39c8d (chrome.dll - run_loop.cc: 102)	base::RunLoop::Run()
0x5ac39c5a (chrome.dll - thread.cc: 262)	base::Thread::Run(base::RunLoop *)
0x5ac39c2d (chrome.dll - browser_process_sub_thread.cc: 175)	content::BrowserProcessSubThread::IOThreadRun(base::RunLoop *)
0x5ac37af4 (chrome.dll - thread.cc: 357)	base::Thread::ThreadMain()
0x5bbcc2f4 (chrome.dll - platform_thread_win.cc: 100)	base::`anonymous namespace'::ThreadFunc
0x76d33c44 (kernel32.dll + 0x00053c44)	BaseThreadInitThunk
0x774f37f4 (ntdll.dll + 0x000637f4)	__RtlUserThreadStart
0x774f37c7 (ntdll.dll + 0x000637c7)	_RtlUserThreadStart

-------------------------------------------------------------------------------
Manual regression range finder link
-------------------------------------------------------------------------------
https://crash.corp.google.com/browse?q=expanded_custom_data.ChromeCrashProto.magic_signature_1.name%3D%27%5BOut+of+Memory%5D+base%3A%3Ainternal%3A%3AMessageLoopTaskRunner%3A%3AAddToIncomingQueue%27+AND+expanded_custom_data.ChromeCrashProto.ptype%3D%27browser%27#-property-selector,-samplereports,+productname,+productversion:1000,+directory,-clientid,+operatingsystem,+url,+simplifiedurl,+extensions

 
Cc: kylec...@chromium.org pnangunoori@chromium.org
Labels: -Type-Bug -Pri-2 RegressedIn-70 TE-CrashTriage Target-70 Target-71 M-70 FoundIn-71 FoundIn-70 Pri-1 Type-Bug-Regression
Owner: gab@chromium.org
Status: Assigned (was: Untriaged)
This issue is first seen on M70-70.0.3508.0. But, recently spiked in latest Beta M70-70.0.3538.16. Below link gives in detail of the number of instances in which the crash occurred for associated builds:

https://crash.corp.google.com/browse?q=product_name%3D%27Chrome%27+AND+expanded_custom_data.ChromeCrashProto.ptype%3D%27browser%27+AND+expanded_custom_data.ChromeCrashProto.magic_signature_1.name%3D%27%5BOut+of+Memory%5D+base%3A%3Ainternal%3A%3AMessageLoopTaskRunner%3A%3AAddToIncomingQueue%27#-productname:1000,productversion:100,-magicsignature:50,-magicsignature2:50,-stablesignature:50,-magicsignaturesorted:50

Note:
=====
1. This is Browser crash listed under Beta build 70.0.3538.16 for Windows on 11 different client ID's.
2. Currently this crash is ranked as number #29 with 12 instances.
3. Since there are low instances of crashes, not marking this crash as RB-Stable. Please feel free to edit if this is not the case.

Crash data:
-----------
71.0.3552.3	1.64%	2 - Canary
71.0.3551.3	3.28%	4 - Dev
70.0.3538.16	10.66%	13 - Beta

From the regression range - https://chromium.googlesource.com/chromium/src/+log/69.0.3497.0..70.0.3538.0?pretty=fuller&n=10000
Suspecting the CL - https://chromium.googlesource.com/chromium/src/+/02b1cd6abe987473248a3454a51efc5aefda0637

gab@ -- Could you please check if this is caused with respect to your change, if not please help us in reassigning the issue to the right owner.

Thanks!
Cc: gab@chromium.org ajha@chromium.org nyerramilli@chromium.org
Issue 860608 has been merged into this issue.
Components: Internals
Labels: -Stability-Crash -Restrict-View-EditIssue Stability-Memory
Owner: ----
Status: Untriaged (was: Assigned)
This is the same as issue 860608 (signature merely changed in my CL).

This is an OOM on an alloc posting into the task queue, not sure we can do much about it.

Looking into some of the crashes to see if this is just the alloc tipping the scale or if the task queue is really unreasonably large (e.g. not being processed for some reason) could be interesting -- I don't plan to do this at the moment.
Blocking: 882843
Labels: Target-72 FoundIn-72
Just to update the latest behavior of this issue in the latest channels:

Still seeing 1087 crashes from 979 clients so far on latest Stable - 70.0.3538.67 on Windows OS. This crash is ranked as #29 in 'Browser' Stable crashes. 

72.0.3594.0	0.04%	1 - Previous Canary
72.0.3590.0	0.30%	7 - Dev
71.0.3578.20	0.47%	11 - Beta
70.0.3538.77	46.41%	1092 - Stable

Link to the list of builds:
-------------------------
https://crash.corp.google.com/browse?q=product_name%3D%27Chrome%27+AND+expanded_custom_data.ChromeCrashProto.ptype%3D%27browser%27+AND+expanded_custom_data.ChromeCrashProto.magic_signature_1.name%3D%27%5BOut+of+Memory%5D+base%3A%3Ainternal%3A%3AMessageLoopTaskRunner%3A%3AAddToIncomingQueue%27

Thanks!

Comment 6 by pnangunoori@chromium.org, Yesterday (26 hours ago)

Just to update the latest behavior of this issue in the latest channels:

Still seeing 37 crashes from 35 clients so far on latest Beta - 72.0.3626.64 on Windows OS. This crash is ranked as #13 in 'Browser' Beta crashes. 

73.0.3679.0	0.00%	1 - Canary
73.0.3673.0	0.07%	24 - Dev
72.0.3626.64	0.11%	38 - Beta
71.0.3578.98	37.97%	13340 - Stable

Crashes on latest Stable spiked than earlier stable builds.

Link to the list of builds:
-------------------------
https://crash.corp.google.com/browse?q=product_name%3D%27Chrome%27+AND+expanded_custom_data.ChromeCrashProto.ptype%3D%27browser%27+AND+expanded_custom_data.ChromeCrashProto.magic_signature_1.name%3D%27%5BOut+of+Memory%5D+base%3A%3Ainternal%3A%3AMessageLoopTaskRunner%3A%3AAddToIncomingQueue%27#-productname:1000,productversion:100,-magicsignature:50,-magicsignature2:50,-stablesignature:50,-magicsignaturesorted:50

Thanks!

Comment 7 by gab@chromium.org, Today (11 hours ago)

Cc: fdoray@chromium.org etienneb@chromium.org
Wow, the task queues are humongous!!

1402802 tasks in |incoming_queue_| (multi-threaded incoming queue) and 334371 tasks in |outgoing_queue_| (single-threaded processing queue; reloaded from |incoming_queue_| when empty).

That's a total of 1,737,173 pending tasks on a single thread..!

@etienneb : any chance you can see this in memlog? (we had seen delayed tasks in the past but I don't recall seeing the main task queue being this full)

Comment 8 Deleted

Comment 9 by gab@chromium.org, Today (11 hours ago)

Above data from http://crash/1b18d2bfa98b87ed

Comment 10 by gab@chromium.org, Today (11 hours ago)

From that crash, it looks like the UI thread is stuck trying to post back to itself and being unable to acquire the lock for its task queue (see next stack for reason).

lock_impl_win.cc:36 :  base::internal::LockImpl::Lock()
message_loop_task_runner.cc:152 :  base::internal::MessageLoopTaskRunner::AddToIncomingQueue(base::Location const &,base::OnceCallback<void >,base::TimeDelta,base::Nestable)
message_loop_task_runner.cc:55 : base::internal::MessageLoopTaskRunner::PostDelayedTask(base::Location const &,base::OnceCallback<void >,base::TimeDelta)
navigation_monitor_impl.cc:65 :  download::NavigationMonitorImpl::NotifyNavigationFinished()
navigation_monitor_impl.cc:56 :  download::NavigationMonitorImpl::OnNavigationEvent(download::NavigationEvent)
download_navigation_observer.cc:36 : download::DownloadNavigationObserver::DidStopLoading()
web_contents_impl.cc:4977 :  content::WebContentsImpl::LoadingStateChanged(bool,bool,content::LoadNotificationDetails *)
web_contents_impl.cc:5628 :  content::WebContentsImpl::DidStopLoading()
frame_tree_node.cc:475 : content::FrameTreeNode::DidStopLoading()
render_frame_host_impl.cc:3180 : content::RenderFrameHostImpl::OnDidStopLoading()
ipc_message_templates.h:146 :  IPC::MessageT<FrameHostMsg_DidStopLoading_Meta,std::tuple<>,void>::Dispatch<content::RenderFrameHostImpl,content::RenderFrameHostImpl,void,void (content::RenderFrameHostImpl::*)() __attribute__((thiscall))>
render_frame_host_impl.cc:1271 : content::RenderFrameHostImpl::OnMessageReceived(IPC::Message const &)
render_process_host_impl.cc:3373 : content::RenderProcessHostImpl::OnMessageReceived(IPC::Message const &)
ipc_channel_proxy.cc:320 : IPC::ChannelProxy::Context::OnDispatchMessage(IPC::Message const &)
bind_internal.h:658 :  base::internal::Invoker<base::internal::BindState<base::internal::IgnoreResultHelper<bool (content::BrowserMessageFilter::Internal::*)(const IPC::Message &) __attribute__((thiscall))>,scoped_refptr<content::BrowserMessageFilter::Internal>,IPC::Message>,void ()>::RunOnce
task_annotator.cc:99 : base::debug::TaskAnnotator::RunTask(char const *,base::PendingTask *)
message_loop.cc:434 :  base::MessageLoop::RunTask(base::PendingTask *)
message_loop.cc:445 :  base::MessageLoop::DeferOrRunPendingTask(base::PendingTask)
message_loop.cc:517 :  base::MessageLoop::DoWork()
message_pump_win.cc:179 :  base::MessagePumpForUI::DoRunLoop()
message_pump_win.cc:52 : base::MessagePumpWin::Run(base::MessagePump::Delegate *)
message_loop.cc:386 :  base::MessageLoop::Run(bool)
run_loop.cc:102 :  base::RunLoop::Run()
chrome_browser_main.cc:1903 :  ChromeBrowserMainParts::MainMessageLoopRun(int *)
browser_main_loop.cc:998 : content::BrowserMainLoop::RunMainMessageLoopParts()
browser_main_runner_impl.cc:165 :  content::BrowserMainRunnerImpl::Run()
browser_main.cc:47 : content::BrowserMain(content::MainFunctionParams const &)
content_main_runner_impl.cc:535 :  content::RunBrowserProcessMain(content::MainFunctionParams const &,content::ContentMainDelegate *)
content_main_runner_impl.cc:900 :  content::ContentMainRunnerImpl::Run(bool)
content_service_manager_main_delegate.cc:53 :  content::ContentServiceManagerMainDelegate::RunEmbedderProcess()
main.cc:472 :  service_manager::Main(service_manager::MainParams const &)
content_main.cc:19 : content::ContentMain(content::ContentMainParams const &)
chrome_main.cc:102 : ChromeMain

Meanwhile the IO thread owns the UI thread's task lock while flushing messages via mojo::Connector::ReadAllAvailableMessages() (22569/35646 reports have mojo as the poster) :
(seems like this is the core issue)

memory_win.cc:51 : base::`anonymous namespace'::OnNoMemory
winheap_stubs_win.cc:90 :  base::allocator::WinCallNewHandler(unsigned int)
allocator_shim_override_ucrt_symbols_win.h:53 :  malloc
circular_deque.h:960 : base::circular_deque<base::PendingTask>::ExpandCapacityIfNecessary(unsigned int)
message_loop_task_runner.cc:162 :  base::internal::MessageLoopTaskRunner::AddToIncomingQueue(base::Location const &,base::OnceCallback<void >,base::TimeDelta,base::Nestable)
message_loop_task_runner.cc:55 : base::internal::MessageLoopTaskRunner::PostDelayedTask(base::Location const &,base::OnceCallback<void >,base::TimeDelta)
task_runner.cc:44 :  base::TaskRunner::PostTask(base::Location const &,base::OnceCallback<void >)
ipc_mojo_bootstrap.cc:838 :  IPC::`anonymous namespace'::ChannelAssociatedGroupController::Accept
connector.cc:475 : mojo::Connector::ReadSingleMessage(unsigned int *)
connector.cc:505 : mojo::Connector::ReadAllAvailableMessages()
connector.cc:387 : mojo::Connector::OnHandleReadyInternal(unsigned int)
bind_internal.h:658 :  base::internal::Invoker<base::internal::BindState<bool (DownloadsListTracker::*)(const download::DownloadItem &) __attribute__((thiscall)) const,base::internal::UnretainedWrapper<DownloadsListTracker> >,bool (const download::DownloadItem &)>::Run
simple_watcher.h:194 : favicon::FaviconService::FaviconResultsCallbackRunner(base::RepeatingCallback<void > const &,std::vector<favicon_base::FaviconRawBitmapResult,std::allocator<favicon_base::FaviconRawBitmapResult> > const *)
bind_internal.h:671 :  base::internal::Invoker<base::internal::BindState<(anonymous namespace)::ComparisonType (*)(const base::RepeatingCallback<bool (const download::DownloadItem &)> &, const download::DownloadItem &, const download::DownloadItem &),base::RepeatingCallback<bool (const download::DownloadItem &)> >,(anonymous namespace)::ComparisonType (const download::DownloadItem &, const download::DownloadItem &)>::Run
simple_watcher.cc:273 :  mojo::SimpleWatcher::OnHandleReady(int,unsigned int,mojo::HandleSignalsState const &)
bind_internal.h:671 :  base::internal::Invoker<base::internal::BindState<void (mojo::SimpleWatcher::*)(int, unsigned int, const mojo::HandleSignalsState &) __attribute__((thiscall)),base::WeakPtr<mojo::SimpleWatcher>,int,unsigned int,mojo::HandleSignalsState>,void ()>::Run
task_annotator.cc:99 : base::debug::TaskAnnotator::RunTask(char const *,base::PendingTask *)
message_loop.cc:434 :  base::MessageLoop::RunTask(base::PendingTask *)
message_loop.cc:445 :  base::MessageLoop::DeferOrRunPendingTask(base::PendingTask)
message_loop.cc:517 :  base::MessageLoop::DoWork()
message_pump_win.cc:512 :  base::MessagePumpForIO::DoRunLoop()
message_pump_win.cc:52 : base::MessagePumpWin::Run(base::MessagePump::Delegate *)
message_loop.cc:386 :  base::MessageLoop::Run(bool)
run_loop.cc:102 :  base::RunLoop::Run()
thread.cc:262 :  base::Thread::Run(base::RunLoop *)
browser_process_sub_thread.cc:174 :  content::BrowserProcessSubThread::IOThreadRun(base::RunLoop *)
thread.cc:357 :  base::Thread::ThreadMain()
platform_thread_win.cc:100 : base::`anonymous namespace'::ThreadFunc

And there's also the history thread being unable to post to the UI thread (probably just a symptom) :

lock_impl_win.cc:36 :  base::internal::LockImpl::Lock()
message_loop_task_runner.cc:152 :  base::internal::MessageLoopTaskRunner::AddToIncomingQueue(base::Location const &,base::OnceCallback<void >,base::TimeDelta,base::Nestable)
message_loop_task_runner.cc:55 : base::internal::MessageLoopTaskRunner::PostDelayedTask(base::Location const &,base::OnceCallback<void >,base::TimeDelta)
task_runner.cc:44 :  base::TaskRunner::PostTask(base::Location const &,base::OnceCallback<void >)
history_backend.cc:163 : history::QueuedHistoryDBTask::DoneRun()
history_backend.cc:2437 :  history::HistoryBackend::ProcessDBTaskImpl()
history_backend.cc:2653 :  history::HistoryBackend::ProcessDBTask(std::unique_ptr<history::HistoryDBTask,std::default_delete<history::HistoryDBTask> >,scoped_refptr<base::SingleThreadTaskRunner>,base::RepeatingCallback<bool > const &)
bind_internal.h:516 :  base::internal::FunctorTraits<void (history::HistoryBackend::*)(std::unique_ptr<history::HistoryDBTask,std::default_delete<history::HistoryDBTask> >, scoped_refptr<base::SingleThreadTaskRunner>, const base::RepeatingCallback<bool ()> &) __attribute__((thiscall)),void>::Invoke<void (history::HistoryBackend::*)(std::unique_ptr<history::HistoryDBTask,std::default_delete<history::HistoryDBTask> >, scoped_refptr<base::SingleThreadTaskRunner>, const base::RepeatingCallback<bool ()> &) __attribute__((thiscall)),scoped_refptr<history::HistoryBackend>,std::unique_ptr<history::HistoryDBTask,std::default_delete<history::HistoryDBTask> >,scoped_refptr<base::SingleThreadTaskRunner>,base::RepeatingCallback<bool ()> >
bind_internal.h:658 :  base::internal::Invoker<base::internal::BindState<void (history::HistoryBackend::*)(std::unique_ptr<history::HistoryDBTask,std::default_delete<history::HistoryDBTask> >, scoped_refptr<base::SingleThreadTaskRunner>, const base::RepeatingCallback<bool ()> &) __attribute__((thiscall)),scoped_refptr<history::HistoryBackend>,std::unique_ptr<history::HistoryDBTask,std::default_delete<history::HistoryDBTask> >,scoped_refptr<base::SingleThreadTaskRunner>,base::RepeatingCallback<bool ()> >,void ()>::RunOnce
task_annotator.cc:99 : base::debug::TaskAnnotator::RunTask(char const *,base::PendingTask *)
message_loop.cc:434 :  base::MessageLoop::RunTask(base::PendingTask *)
message_loop.cc:445 :  base::MessageLoop::DeferOrRunPendingTask(base::PendingTask)
message_loop.cc:517 :  base::MessageLoop::DoWork()
message_pump_default.cc:37 : base::MessagePumpDefault::Run(base::MessagePump::Delegate *)
message_loop.cc:386 :  base::MessageLoop::Run(bool)
run_loop.cc:102 :  base::RunLoop::Run()
thread.cc:262 :  base::Thread::Run(base::RunLoop *)
thread.cc:357 :  base::Thread::ThreadMain()

Comment 11 by gab@chromium.org, Today (11 hours ago)

Another interesting crash is http://crash/9cc52053ebdb8c9c in this case the IO thread is hung with 2 tasks in |outgoing_queue_| and 3,424,806 tasks in |incoming_queue_|.

The IO thread is hung in a system call to "closesocket", there aren't many instances of this particular hang and it might be a manifestation of known Windows issue with KB4338818 https://forum.filezilla-project.org/viewtopic.php?t=49308.

So basically we've just discovered a new class of bugs currently all bucketed under this single signature :

"Thread hangs which manifest themselves as OOMs before being caught by a hang watcher"

I think we need to catch those (e.g. DCHECK tasks queue < 1M task when posting) and have server-side smarts to triage those based on the hung thread's signature like we triage hangs.

Sign in to add a comment