New issue
Advanced search Search tips

Issue 721461 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: May 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug



Sign in to add a comment

Assert Function marked as IO-only was called from a thread that disallows IO! net::GetNetworkList

Project Member Reported by elawrence@chromium.org, May 11 2017

Issue description

Chromium	60.0.3096.0 (Developer Build) (32-bit) 
Revision	f4f904edc4cbbb9ffd269cd6fd5d26d9925aee8c-refs/heads/master@{#470702}

[8716:17620:0511/131216.411:FATAL:thread_restrictions.cc(38)] Check failed: false. Function marked as IO-only was called from a thread that disallows IO!  If this thread really should be allowed to make IO calls, adjust the call to base::ThreadRestrictions::SetIOAllowed() in this thread's startup.
Backtrace:
	base::debug::StackTrace::StackTrace [0x100AD4A7+55]
	base::debug::StackTrace::StackTrace [0x100AD141+17]
	logging::LogMessage::~LogMessage [0x10100E7E+94]
	base::ThreadRestrictions::AssertIOAllowed [0x1029B8D0+144]
	net::GetNetworkList [0x0ACF2536+70]
	net::NetworkChangeNotifier::ConnectionTypeFromInterfaces [0x0ACC8FD9+25]
	net::NetworkChangeNotifierWin::RecomputeCurrentConnectionType [0x0ACEB840+1056]
	net::NetworkChangeNotifierWin::NotifyObservers [0x0ACEAFFF+143]
	net::NetworkChangeNotifierWin::OnObjectSignaled [0x0ACEB3D6+262]
	base::win::ObjectWatcher::Signal [0x1039E446+54]
	base::internal::FunctorTraits<void (__thiscall base::win::ObjectWatcher::*)(base::win::ObjectWatcher::Delegate *),void>::Invoke<base::WeakPtr<base::win::ObjectWatcher> const &,base::win::ObjectWatcher::Delegate * const &> [0x1039DA74+36]
	base::internal::InvokeHelper<1,void>::MakeItSo<void (__thiscall base::win::ObjectWatcher::*const &)(base::win::ObjectWatcher::Delegate *),base::WeakPtr<base::win::ObjectWatcher> const &,base::win::ObjectWatcher::Delegate * const &> [0x1039DB42+66]
	base::internal::Invoker<base::internal::BindState<void (__thiscall base::win::ObjectWatcher::*)(base::win::ObjectWatcher::Delegate *),base::WeakPtr<base::win::ObjectWatcher>,base::win::ObjectWatcher::Delegate *>,void __cdecl(void)>::RunImpl<void (__thisca [0x1039DBB3+83]
	base::internal::Invoker<base::internal::BindState<void (__thiscall base::win::ObjectWatcher::*)(base::win::ObjectWatcher::Delegate *),base::WeakPtr<base::win::ObjectWatcher>,base::win::ObjectWatcher::Delegate *>,void __cdecl(void)>::Run [0x1039E3F4+36]
	base::Callback<void __cdecl(void),0,0>::Run [0x100499C5+53]
	base::debug::TaskAnnotator::RunTask [0x100B43BC+476]
	base::MessageLoop::RunTask [0x1012F75C+620]
	base::MessageLoop::DeferOrRunPendingTask [0x1012DC5B+43]
	base::MessageLoop::DoWork [0x1012E25F+239]
	base::MessagePumpForUI::DoRunLoop [0x10136173+67]
	base::MessagePumpWin::Run [0x1013710B+123]
	base::MessageLoop::RunHandler [0x1012F3D5+293]
	base::RunLoop::Run [0x101ED406+166]
	ChromeBrowserMainParts::MainMessageLoopRun [0x04CAC268+248]
	content::BrowserMainLoop::RunMainMessageLoopParts [0x11ADD6B1+225]
	content::BrowserMainRunnerImpl::Run [0x11AE3763+243]
	content::BrowserMain [0x11ACF19B+155]
	content::RunNamedProcessTypeMain [0x1354BE87+135]
	content::ContentMainRunnerImpl::Run [0x1354BD2C+572]
	content::ContentServiceManagerMainDelegate::RunEmbedderProcess [0x13549B04+36]
	service_manager::Main [0x0114D709+777]
	content::ContentMain [0x13549FF9+41]
	ChromeMain [0x03721D90+256]
	MainDllLoader::Launch [0x0042F5FD+829]
	wWinMain [0x0042A4B0+576]
	invoke_main [0x004EA62E+30] (f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:118)
	__scrt_common_main_seh [0x004EA490+336] (f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253)
	__scrt_common_main [0x004EA32D+13] (f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:296)
	wWinMainCRTStartup [0x004EA648+8] (f:\dd\vctools\crt\vcstartup\src\startup\exe_wwinmain.cpp:17)
	BaseThreadInitThunk [0x758438F4+36]
	RtlUnicodeStringToInteger [0x77C15DE3+595]
	RtlUnicodeStringToInteger [0x77C15DAE+542]

 

Comment 1 by mef@chromium.org, May 11 2017

Cc: pauljensen@chromium.org

Comment 2 by mmenke@chromium.org, May 11 2017

Labels: -Pri-3 Pri-2
Owner: jkarlin@chromium.org
Status: Assigned (was: Untriaged)
[+jkarlin] I assume this is due to https://codereview.chromium.org/2872433004

Comment 3 by mmenke@chromium.org, May 11 2017

Components: -Internals>Network Internals>Network>Connectivity
One possible solution is to post NetworkChangeNotifierWin::NotifyObservers() to NetworkChangeNotifierWin::dns_config_service_thread_
Labels: OS-Windows
Status: Started (was: Assigned)
I've hit this when leaving debug Chromium running overnight. The call stack is exactly the same as above.

Comment 7 by nick@chromium.org, May 24 2017

Also hitting this in a debug Windows build, after resuming following a long debugger breakpoint.

Comment 8 by jkarlin@google.com, May 25 2017

It happens when your machine's connectivity changes. Sorry about it. Patch is in the works.
Project Member

Comment 9 by bugdroid1@chromium.org, May 26 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6b0ea35f8c93c6eb229ba09624d566a339b3073b

commit 6b0ea35f8c93c6eb229ba09624d566a339b3073b
Author: jkarlin <jkarlin@chromium.org>
Date: Fri May 26 19:10:42 2017

[NetworkChangeNotifier] Run Windows connection type computation on safe thread

1. Move RecomputeCurrentConnectionType to anonymous namespace
2. Call RecomputeCurrentConnectionType via callback so tests can override
3. Call RecomputeCurrentConnectionType on dns thread
4. Tests inject their own dns task runner

BUG= 721461 ,725487

Review-Url: https://codereview.chromium.org/2893943002
Cr-Commit-Position: refs/heads/master@{#475082}

[modify] https://crrev.com/6b0ea35f8c93c6eb229ba09624d566a339b3073b/net/base/network_change_notifier_win.cc
[modify] https://crrev.com/6b0ea35f8c93c6eb229ba09624d566a339b3073b/net/base/network_change_notifier_win.h
[modify] https://crrev.com/6b0ea35f8c93c6eb229ba09624d566a339b3073b/net/base/network_change_notifier_win_unittest.cc

Labels: Merge-Request-59
Landed 5 days ago and no reports of problems since, so requesting merge to beta.
Project Member

Comment 11 by sheriffbot@chromium.org, May 31 2017

Labels: -Merge-Request-59 Merge-Review-59 Hotlist-Merge-Review
This bug requires manual review: We are only 5 days from stable.
Please contact the milestone owner if you have questions.
Owners: amineer@(Android), cmasso@(iOS), gkihumba@(ChromeOS), Abdul Syed@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -Hotlist-Merge-Review -Merge-Review-59 Merge-Request-60
Ah, I didn't want 59. I wanted 60. Switched.
Project Member

Comment 13 by sheriffbot@chromium.org, May 31 2017

Labels: -Merge-Request-60 Hotlist-Merge-Approved Merge-Approved-60
Your change meets the bar and is auto-approved for M60. Please go ahead and merge the CL to branch 3112 manually. Please contact milestone owner if you have questions.
Owners: amineer@(Android), cmasso@(iOS), josafat@(ChromeOS), bustamante@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 14 by bugdroid1@chromium.org, May 31 2017

Labels: -merge-approved-60 merge-merged-3112
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6da688ab3117d09406f40fd3395c6874d0d39039

commit 6da688ab3117d09406f40fd3395c6874d0d39039
Author: Josh Karlin <jkarlin@chromium.org>
Date: Wed May 31 17:28:50 2017

[NetworkChangeNotifier] Run Windows connection type computation on safe thread

*Merge to M60*

1. Move RecomputeCurrentConnectionType to anonymous namespace
2. Call RecomputeCurrentConnectionType via callback so tests can override
3. Call RecomputeCurrentConnectionType on dns thread
4. Tests inject their own dns task runner

BUG= 721461 ,725487

Review-Url: https://codereview.chromium.org/2893943002
Cr-Commit-Position: refs/heads/master@{#475082}
(cherry picked from commit 6b0ea35f8c93c6eb229ba09624d566a339b3073b)

TBR=pauljensen

Review-Url: https://codereview.chromium.org/2914833002 .
Cr-Commit-Position: refs/branch-heads/3112@{#59}
Cr-Branched-From: b6460e24cf59f429d69de255538d0fc7a425ccf9-refs/heads/master@{#474897}

[modify] https://crrev.com/6da688ab3117d09406f40fd3395c6874d0d39039/net/base/network_change_notifier_win.cc
[modify] https://crrev.com/6da688ab3117d09406f40fd3395c6874d0d39039/net/base/network_change_notifier_win.h
[modify] https://crrev.com/6da688ab3117d09406f40fd3395c6874d0d39039/net/base/network_change_notifier_win_unittest.cc

Status: Fixed (was: Started)

Sign in to add a comment