New issue
Advanced search Search tips

Issue 767889 link

Starred by 1 user

Issue metadata

Status: Fixed
Merged: issue 726162
Owner:
Closed: Sep 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: Android , Windows
Pri: 1
Type: Bug

Blocking:
issue 596231



Sign in to add a comment

DCHECK: component_updater doing IO on main thread

Project Member Reported by siggi@chromium.org, Sep 22 2017

Issue description

Chrome Version: 63.0.3222.1
OS: Win10

I'm getting a DCHECK due to violating IOAllowed restriction on the main thread in the component updater.

// Tell the rest of the world where to find the platform-specific PNaCl files.
void OverrideDirPnaclComponent(const base::FilePath& base_path) {
  PathService::Override(chrome::DIR_PNACL_COMPONENT, GetPlatformDir(base_path));  << HERE, inside ::Override(...)
}

0:000> kc
  *** Stack trace for last set context - .thread/.cxr resets it
 # 
00 chrome_64480000!base::debug::BreakDebugger
01 chrome_64480000!logging::LogMessage::~LogMessage
02 chrome_64480000!base::ThreadRestrictions::AssertIOAllowed
03 chrome_64480000!base::PathExists
04 chrome_64480000!base::PathService::OverrideAndCreateIfNeeded
05 chrome_64480000!base::PathService::Override
06 chrome_64480000!component_updater::?A0xc03ab486::OverrideDirPnaclComponent
07 chrome_64480000!component_updater::`anonymous namespace'::PnaclComponentInstallerTraits::ComponentReady
08 chrome_64480000!component_updater::DefaultComponentInstaller::ComponentReady
09 chrome_64480000!component_updater::DefaultComponentInstaller::FinishRegistration
0a chrome_64480000!base::internal::FunctorTraits<void (__thiscall component_updater::DefaultComponentInstaller::*)(scoped_refptr<component_updater::DefaultComponentInstaller::RegistrationInfo> const &,component_updater::ComponentUpdateService *,base::RepeatingCallback<void __cdecl(void)> const &),void>::Invoke
0b chrome_64480000!base::internal::InvokeHelper<0,void>::MakeItSo
0c chrome_64480000!base::internal::Invoker<base::internal::BindState<void (__thiscall component_updater::DefaultComponentInstaller::*)(scoped_refptr<component_updater::DefaultComponentInstaller::RegistrationInfo> const &,component_updater::ComponentUpdateService *,base::RepeatingCallback<void __cdecl(void)> const &),scoped_refptr<component_updater::DefaultComponentInstaller>,scoped_refptr<component_updater::DefaultComponentInstaller::RegistrationInfo>,component_updater::ComponentUpdateService *,base::RepeatingCallback<void __cdecl(void)> >,void __cdecl(void)>::RunImpl<void (__thiscall component_updater::DefaultComponentInstaller::*const &)(scoped_refptr<component_updater::DefaultComponentInstaller::RegistrationInfo> const &,component_updater::ComponentUpdateService *,base::RepeatingCallback<void __cdecl(void)> const &),std::tuple<scoped_refptr<component_updater::DefaultComponentInstaller>,scoped_refptr<component_updater::DefaultComponentInstaller::RegistrationInfo>,component_updater::ComponentUpdateService *,base::RepeatingCallback<void __cdecl(void)> > const &,0,1,2,3>
0d chrome_64480000!base::internal::Invoker<base::internal::BindState<void (__thiscall component_updater::DefaultComponentInstaller::*)(scoped_refptr<component_updater::DefaultComponentInstaller::RegistrationInfo> const &,component_updater::ComponentUpdateService *,base::RepeatingCallback<void __cdecl(void)> const &),scoped_refptr<component_updater::DefaultComponentInstaller>,scoped_refptr<component_updater::DefaultComponentInstaller::RegistrationInfo>,component_updater::ComponentUpdateService *,base::RepeatingCallback<void __cdecl(void)> >,void __cdecl(void)>::Run
0e chrome_64480000!base::OnceCallback<void __cdecl(void)>::Run
0f chrome_64480000!base::`anonymous namespace'::PostTaskAndReplyRelay::RunReplyAndSelfDestruct
10 chrome_64480000!base::OnceCallback<void __cdecl(void)>::Run
11 chrome_64480000!base::debug::TaskAnnotator::RunTask
12 chrome_64480000!base::internal::IncomingTaskQueue::RunTask
13 chrome_64480000!base::MessageLoop::RunTask
14 chrome_64480000!base::MessageLoop::DeferOrRunPendingTask
15 chrome_64480000!base::MessageLoop::DoWork
16 chrome_64480000!base::MessagePumpForUI::DoRunLoop
17 chrome_64480000!base::MessagePumpWin::Run
18 chrome_64480000!base::MessageLoop::Run
19 chrome_64480000!base::RunLoop::Run
1a chrome_64480000!ChromeBrowserMainParts::MainMessageLoopRun
1b chrome_64480000!content::BrowserMainLoop::RunMainMessageLoopParts
1c chrome_64480000!content::BrowserMainRunnerImpl::Initialize
1d chrome_64480000!content::BrowserMain
1e chrome_64480000!content::RunNamedProcessTypeMain
1f chrome_64480000!content::ContentMainRunnerImpl::Run
20 chrome_64480000!service_manager::Main
21 chrome_64480000!content::ContentMain
22 chrome_64480000!ChromeMain

 

Comment 1 by siggi@chromium.org, Sep 22 2017

Blocking: 596231
This is going to block Albatross, as this is sticky once it hits :(.

Comment 2 by siggi@chromium.org, Sep 22 2017

Representative crash: crash/2719e253e032026189.

Comment 3 by siggi@chromium.org, Sep 22 2017

Labels: -Pri-3 OS-Android Pri-1
Mergedinto: 726162
Status: Duplicate (was: Untriaged)
Fixed with https://chromium-review.googlesource.com/678040.
Sorry about that. :-/

Comment 5 by siggi@chromium.org, Sep 22 2017

Status: Fixed (was: Duplicate)
Marking this fixed instead of dupe, as it makes no sense to dupe into a feature bug.

Comment 6 by siggi@chromium.org, Sep 26 2017

Owner: waff...@chromium.org
Status: Assigned (was: Fixed)
I'm (still) seeing this (again) in "Version 63.0.3223.1 (Official Build) canary SyzyASan (32-bit)". See crash/19e253e032026189.

A reliable repro is to:
- open any page (chrome://settings/help).
- control-P (for print).
- select "Microsoft Print to PDF"
- click "Print" button.
- kaboom.

Hm, that crash is from 63.0.3222.1, which was before the change. Are you sure you're running 3223?

Comment 8 by siggi@chromium.org, Sep 26 2017

Here's another one: crash/ec6841a4509921c6. I'm sure I was running 3223 after the first crash, before I dunno.
Looks like symbols are horked for 3223 :(.

Comment 9 by siggi@chromium.org, Sep 26 2017

False red herring in a sheep's clothing here. The .3223. crash is elsewhere, but repros the same way.
Nice. OK to close this again, then? (I was about 3/4 through an ASAN build to check it myself.)

Comment 11 by siggi@chromium.org, Sep 26 2017

Status: Fixed (was: Assigned)

Sign in to add a comment