New issue
Advanced search Search tips

Issue 739461 link

Starred by 3 users

Issue metadata

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



Sign in to add a comment

Background downloader triggers AssertComInitialized when running a DEBUG build

Project Member Reported by stanisc@chromium.org, Jul 5 2017

Issue description

I hit the following error after a few minutes of running DEBUG build of Chromium (running it under VS debug session).
Since this is related to BackgroundDownloader I think it is triggered based on some timeout rather than any action that I do in the UI.

---------------------------
Fatal error
---------------------------
[23680:7856:0705/113153.794:FATAL:com_init_util.cc(69)] Check failed: false. 
Backtrace:
	base::debug::StackTrace::StackTrace [0x100AE967+55] (d:\src\chrome\src\base\debug\stack_trace_win.cc:217)
	base::debug::StackTrace::StackTrace [0x100AE601+17] (d:\src\chrome\src\base\debug\stack_trace.cc:199)
	logging::LogMessage::~LogMessage [0x101031AE+94] (d:\src\chrome\src\base\logging.cc:554)
	base::win::AssertComInitialized [0x103A6AE0+144] (d:\src\chrome\src\base\win\com_init_util.cc:70)
	base::win::`anonymous namespace'::HookManager::DCheckedCoCreateInstance [0x103A5F78+8] (d:\src\chrome\src\base\win\com_init_check_hook.cc:248)
	update_client::`anonymous namespace'::GetGit [0x07603509+41] (d:\src\chrome\src\components\update_client\background_downloader_win.cc:138)
	update_client::BackgroundDownloader::BeginDownloadHelper [0x07601AFA+42] (d:\src\chrome\src\components\update_client\background_downloader_win.cc:485)
	update_client::BackgroundDownloader::BeginDownload [0x076019CD+237] (d:\src\chrome\src\components\update_client\background_downloader_win.cc:469)
	base::internal::FunctorTraits<void (__thiscall update_client::BackgroundDownloader::*)(GURL const &),void>::Invoke<update_client::BackgroundDownloader *,GURL const &> [0x075FEB08+24] (d:\src\chrome\src\base\bind_internal.h:210)
	base::internal::InvokeHelper<0,void>::MakeItSo<void (__thiscall update_client::BackgroundDownloader::*const &)(GURL const &),update_client::BackgroundDownloader *,GURL const &> [0x075FED51+49] (d:\src\chrome\src\base\bind_internal.h:275)
	base::internal::Invoker<base::internal::BindState<void (__thiscall update_client::BackgroundDownloader::*)(GURL const &),base::internal::UnretainedWrapper<update_client::BackgroundDownloader>,GURL>,void __cdecl(void)>::RunImpl<void (__thiscall update_clie [0x075FEF4A+90] (d:\src\chrome\src\base\bind_internal.h:351)
	base::internal::Invoker<base::internal::BindState<void (__thiscall update_client::BackgroundDownloader::*)(GURL const &),base::internal::UnretainedWrapper<update_client::BackgroundDownloader>,GURL>,void __cdecl(void)>::Run [0x07604BB4+36] (d:\src\chrome\src\base\bind_internal.h:329)
	base::Callback<void __cdecl(void),0,0>::Run [0x1004B015+53] (d:\src\chrome\src\base\callback.h:91)
	base::debug::TaskAnnotator::RunTask [0x100B59CB+491] (d:\src\chrome\src\base\debug\task_annotator.cc:61)
	base::internal::TaskTracker::PerformRunTask [0x1026A135+1221] (d:\src\chrome\src\base\task_scheduler\task_tracker.cc:335)
	base::internal::TaskTracker::RunNextTask [0x1026A8AC+348] (d:\src\chrome\src\base\task_scheduler\task_tracker.cc:252)
	base::internal::SchedulerWorker::Thread::ThreadMain [0x1025A853+771] (d:\src\chrome\src\base\task_scheduler\scheduler_worker.cc:80)
	base::`anonymous namespace'::ThreadFunc [0x10275EFC+188] (d:\src\chrome\src\base\threading\platform_thread_win.cc:91)
	BaseThreadInitThunk [0x760462C4+36]
	RtlSubscribeWnfStateChangeNotification [0x77880FD9+1081]
	RtlSubscribeWnfStateChangeNotification [0x77880FA4+1028]
	(No symbol) [0x00000000]

robliao@, Could this be related to  Issue 708303 ?
 
Cc: -robliao@chromium.org
Components: Internals>TaskScheduler
Labels: -Pri-3 Pri-2
Owner: robliao@chromium.org
Status: Assigned (was: Untriaged)
Hitting this in SchedulerWorker generally means a migration was performed to the wrong context. I'll take a look.
Components: Internals>Installer>Components
Summary: Background downloader triggers AssertComInitialized when running a DEBUG build (was: AssertComInitialized when running a DEBUG build)
Status: Started (was: Assigned)
Project Member

Comment 5 by bugdroid1@chromium.org, Jul 10 2017

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

commit dc4bd3708296d15a993eb953bf6583ebe187133b
Author: Robert Liao <robliao@chromium.org>
Date: Mon Jul 10 18:24:58 2017

Switch the Updaters to use COM STA Task Runners

On Windows, the background downloader uses the COM Global Interface
Table, and Chromium requires these instances to have COM explictly
initialized.

Using a COM STA TaskRunner works for this case.

BUG= 739461 

Change-Id: I28fdc54af5ec34034498d904bba648fc40c3c2f0
Reviewed-on: https://chromium-review.googlesource.com/562537
Reviewed-by: Joshua Pawlicki <waffles@chromium.org>
Reviewed-by: Sorin Jianu <sorin@chromium.org>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Commit-Queue: Robert Liao <robliao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#485319}
[modify] https://crrev.com/dc4bd3708296d15a993eb953bf6583ebe187133b/chrome/browser/component_updater/chrome_component_updater_configurator.cc
[modify] https://crrev.com/dc4bd3708296d15a993eb953bf6583ebe187133b/extensions/browser/updater/update_client_config.cc

Status: Fixed (was: Started)
Cc: sorin@chromium.org
 Issue 740637  has been merged into this issue.

Sign in to add a comment