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

Issue 806780 link

Starred by 3 users

Issue metadata

Status: WontFix
Owner:
Last visit > 30 days ago
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug



Sign in to add a comment

Chrome: Crash Report - [ThreadWatcher IO hang] net::UDPSocketWin::InternalRecvFromOverlapped

Project Member Reported by cr...@system.gserviceaccount.com, Jan 29 2018

Issue description

reporter:ajha@google.com

Magic Signature: [ThreadWatcher IO hang] net::UDPSocketWin::InternalRecvFromOverlapped

Crash link: https://crash.corp.google.com//browse?q=expanded_custom_data.ChromeCrashProto.magic_signature_1.name%3D'%5BThreadWatcher%20IO%20hang%5D%20net%3A%3AUDPSocketWin%3A%3AInternalRecvFromOverlapped'%20AND%20product.name%3D'Chrome'%20AND%20product.Version%3D'66.0.3334.0'%20AND%20ReportID%3D'1b8c34b9865cc7b3'&sql_dialect=googlesql&ignore_case=false&enable_rewrite=true&omit_field_name=&omit_field_value=&omit_field_opt=%3D#3

-------------------------------------------------------------------------------
Sample Report
-------------------------------------------------------------------------------
Product name: Chrome
Magic Signature : [ThreadWatcher IO hang] net::UDPSocketWin::InternalRecvFromOverlapped
Product Version: 66.0.3334.0
Process type: browser
Report ID: 1b8c34b9865cc7b3
Report Url: https://crash.corp.google.com/1b8c34b9865cc7b3
Report Time: 2018-01-29T01:59:07-08:00
Upload Time: 2018-01-29T01:59:27.216-08:00
Uptime: 588000 ms
CumulativeProductUptime: 0 ms
OS Name: Windows NT
OS Version: 6.1.7601 17514
CPU Architecture: amd64
CPU Info: family 21 model 19 stepping 1

-------------------------------------------------------------------------------
Crashing thread: Thread index: 15. Stack Quality: 100%. Thread id: 1664.
-------------------------------------------------------------------------------
0x77bf138a (ntdll.dll + 0x0005138a)	ZwDeviceIoControlFile
0x000007fefd326f04 (mswsock.dll + 0x00006f04)	WSPRecvFrom
0x000007feff7bed37 (WS2_32.dll + 0x0000ed37)	DPROVIDER::WSPRecvFrom(unsigned __int64,_WSABUF *,unsigned long,unsigned long *,unsigned long *,sockaddr *,int *,_OVERLAPPED *,void (*)(unsigned long,unsigned long,_OVERLAPPED *,unsigned long),_WSATHREADID *,int *)
0x000007feff7de7ae (WS2_32.dll + 0x0002e7ae)	WSARecvFrom
0x000007fedd9dbad8 (chrome.dll - udp_socket_win.cc: 775)	net::UDPSocketWin::InternalRecvFromOverlapped(net::IOBuffer *,int,net::IPEndPoint *)
0x000007fedcf04cdd (chrome.dll - udp_socket_win.cc: 400)	net::UDPSocketWin::RecvFrom(net::IOBuffer *,int,net::IPEndPoint *,base::RepeatingCallback<void > const &)
0x000007fedeb09acb (chrome.dll - mdns_client_impl.cc: 83)	net::MDnsConnection::SocketHandler::DoLoop(int)
0x000007fedeb09b19 (chrome.dll - mdns_client_impl.cc: 97)	net::MDnsConnection::SocketHandler::OnDatagramReceived(int)
0x000007fedcf0fb25 (chrome.dll - udp_socket_win.cc: 598)	net::UDPSocketWin::DoReadCallback(int)
0x000007fedd9db645 (chrome.dll - udp_socket_win.cc: 634)	net::UDPSocketWin::DidCompleteRead()
0x000007fedd9db521 (chrome.dll - udp_socket_win.cc: 157)	net::UDPSocketWin::Core::ReadDelegate::OnObjectSignaled(void *)
0x000007fedc93ed09 (chrome.dll - task_annotator.cc: 53)	base::debug::TaskAnnotator::RunTask(char const *,base::PendingTask *)
0x000007fedc93e5eb (chrome.dll - message_loop.cc: 399)	base::MessageLoop::RunTask(base::PendingTask *)
0x000007fedc93dee9 (chrome.dll - message_loop.cc: 462)	base::MessageLoop::DoWork()
0x000007fedc94e380 (chrome.dll - message_pump_win.cc: 475)	base::MessagePumpForIO::DoRunLoop()
0x000007fedc94e217 (chrome.dll - message_pump_win.cc: 56)	base::MessagePumpWin::Run(base::MessagePump::Delegate *)
0x000007fedc93d8e4 (chrome.dll - run_loop.cc: 130)	base::RunLoop::Run()
0x000007fedc9f7e1f (chrome.dll - browser_thread_impl.cc: 248)	content::BrowserThreadImpl::IOThreadRun(base::RunLoop *)
0x000007fedc9d5d1d (chrome.dll - browser_thread_impl.cc: 283)	content::BrowserThreadImpl::Run(base::RunLoop *)
0x000007fedc93c909 (chrome.dll - thread.cc: 338)	base::Thread::ThreadMain()
0x000007fedd83a9c4 (chrome.dll - platform_thread_win.cc: 91)	base::`anonymous namespace'::ThreadFunc
0x77a9652c (kernel32.dll + 0x0001652c)	BaseThreadInitThunk
0x77bcc520 (ntdll.dll + 0x0002c520)	RtlUserThreadStart

 
Project Member

Comment 1 by sheriffbot@chromium.org, Feb 6 2018

Labels: FoundIn-M-66 Fracas
Users experienced this crash on the following builds:

Win Canary 66.0.3340.0 -  0.18 CPM, 4 reports, 3 clients (signature [ThreadWatcher IO hang] net::UDPSocketWin::InternalRecvFromOverlapped)

If this update was incorrect, please add "Fracas-Wrong" label to prevent future updates.

- Go/Fracas
Components: Internals>Network

Comment 3 by mmenke@chromium.org, Feb 14 2018

Cc: xunji...@chromium.org

Comment 4 by mmenke@chromium.org, Feb 14 2018

Labels: Network-Triaged
Cc: -xunji...@chromium.org gab@chromium.org
Owner: xunji...@chromium.org
Status: Assigned (was: Untriaged)
This is surfaced probably because of the recent change in metrics/thread_watcher.cc ( Issue 804345 ).

+gab@: How should we go about handling IO hang like this? This is hanging on a sys call. It doesn't look immediately actionable. Would appreciate any suggestion that you have.

Comment 6 by ajha@chromium.org, Feb 15 2018

Labels: M-66

Comment 7 by gab@chromium.org, Feb 20 2018

Labels: -Stability-Crash -Restrict-View-EditIssue Stability-Hang
While you can't do anything about the fact that this call can be very slow. This hang report is making you aware of that fact.

Making this step async is the fix to the hang report.
Status: WontFix (was: Assigned)
Ok. Thanks.

We already have a version that uses Windows' non-blocking IO (InternalRecvFromNonBlocking) and exposes a setter for client to choose between the overlapped i/o and non-blocking. It's unclear what's more we can do for this bug. I'll WontFix.
This is still showing up, but yeah that it's using overlapped I/O means it is already asynchronous, and indeed we create sockets supporting overlapped I/O.

Is there a way to tell how long it's been hanging for? If it's a short while, the machine could just be a little slow. If it's much longer, it seems something's wrong with Windows' APIs.

Sign in to add a comment