Chrome: Crash Report - [ThreadWatcher IO hang] net::UDPSocketWin::InternalRecvFromOverlapped |
||||||||
Issue descriptionreporter: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
,
Feb 14 2018
,
Feb 14 2018
,
Feb 14 2018
,
Feb 14 2018
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.
,
Feb 15 2018
,
Feb 20 2018
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.
,
Feb 20 2018
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.
,
Aug 24
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 |
||||||||
Comment 1 by sheriffbot@chromium.org
, Feb 6 2018