ChromeOSMetricsProvider::InitTaskGetHardwareClassOnBackgroundThread on wrong thread |
|||
Issue descriptionHi isherman, I saw that you recently made changes to ChromeOSMetricsProvider::InitTaskGetHardwareClassOnBackgroundThread I'm seeing this being ran on the wrong thread on the Mojo Chromium OS bots during telemetry_unittests [17524:17543:0714/072328.691794:FATAL:thread_restrictions.cc(77)] Check failed: false. Waiting is not allowed to be used on this thread to prevent jank and deadlock. If this task is running inside the TaskScheduler, the TaskRunner used to post it needs to have WithBaseSyncPrimitives() in its TaskTraits. #0 0x7fb4d680b6fc base::debug::StackTrace::StackTrace() #1 0x7fb4d6823aa1 logging::LogMessage::~LogMessage() #2 0x7fb4d6880502 base::ThreadRestrictions::AssertWaitAllowed() #3 0x7fb4d69ebbf7 ChromeOSMetricsProvider::InitTaskGetHardwareClassOnBackgroundThread() #4 0x7fb4d4a8c564 _ZN4base8internal7InvokerINS0_9BindStateIMN11google_apis19UrlFetchRequestBaseEFvvEJNS_7WeakPtrINS3_5drive30SingleBatchableDelegateRequestEEEEEEFvvEE3RunEPNS0_13BindStateBaseE #5 0x7fb4d6877f19 base::(anonymous namespace)::PostTaskAndReplyRelay::RunTaskAndPostReply() #6 0x7fb4d68b4ff0 base::debug::TaskAnnotator::RunTask() #7 0x7fb4d686f9bd base::internal::TaskTracker::PerformRunTask() #8 0x7fb4d686fff7 base::internal::TaskTrackerPosix::PerformRunTask() #9 0x7fb4d686f202 base::internal::TaskTracker::RunNextTask() #10 0x7fb4d68bf6aa base::internal::SchedulerWorker::Thread::ThreadMain() #11 0x7fb4d6877bef base::(anonymous namespace)::ThreadFunc() #12 0x7fb4d37e1184 start_thread #13 0x7fb4d01dcffd clone An example build with this failure: https://build.chromium.org/p/chromium.fyi/builders/Mojo%20ChromiumOS/builds/19946
,
Jul 15 2017
,
Jul 20 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f97af9d1f83b44bee1172df3b59eebfc6c819591 commit f97af9d1f83b44bee1172df3b59eebfc6c819591 Author: Ilya Sherman <isherman@chromium.org> Date: Thu Jul 20 20:16:23 2017 [Task Scheduler] Allow the ChromeOSMetricsProvider to wait. The InitTaskGetHardwareClassOnBackgroundThread() code calls into StatisticsProvider::GetMachineStatistic(), which calls WaitForStatisticsLoaded(), which uses a WaitableEvent. Bug: 743056 Change-Id: I3da6e975b1d774f963ca4cdb9242878357bd2b78 Reviewed-on: https://chromium-review.googlesource.com/572740 Reviewed-by: Alexei Svitkine (slow) <asvitkine@chromium.org> Commit-Queue: Alexei Svitkine (slow) <asvitkine@chromium.org> Cr-Commit-Position: refs/heads/master@{#488378} [modify] https://crrev.com/f97af9d1f83b44bee1172df3b59eebfc6c819591/chrome/browser/metrics/chromeos_metrics_provider.cc
,
Jul 20 2017
,
Feb 26 2018
|
|||
►
Sign in to add a comment |
|||
Comment 1 by isherman@chromium.org
, Jul 15 2017