Crash: EasyUnlockServiceRegular does not wait for DeviceSyncClient to be ready |
|||||||
Issue descriptionLatest ToT (c2a89e2c51ea4bb1b8de6aa40acc5a65d0f6c8f9), EVE device. Debug official build. [9643:9643:0828/205824.278402:FATAL:device_sync_client_impl.cc(100)] Check failed: is_ready(). #0 0x56c73ed33b98 base::debug::StackTrace::StackTrace() #1 0x56c73ead64cc base::debug::StackTrace::StackTrace() #2 0x56c73eb1ee9a logging::LogMessage::~LogMessage() #3 0x56c73be5a69e chromeos::device_sync::DeviceSyncClientImpl::GetSyncedDevices() #4 0x56c73b72ca96 chromeos::EasyUnlockServiceRegular::GetUnlockKeys() #5 0x56c73b7320e3 chromeos::EasyUnlockServiceRegular::InitializeInternal() #6 0x56c73b7218cc chromeos::EasyUnlockService::InitializeOnAppManagerReady() #7 0x56c734f6adef _ZN4base8internal13FunctorTraitsIMN3net16HostResolverImpl8ProcTaskEFvvEvE6InvokeIS6_NS_7WeakPtrIS4_EEJEEEvT_OT0_DpOT1_ #8 0x56c73b728aca _ZN4base8internal12InvokeHelperILb1EvE8MakeItSoIRKMN8chromeos17EasyUnlockServiceEFvvERKNS_7WeakPtrIS5_EEJEEEvOT_OT0_DpOT1_ #9 0x56c73b728a60 _ZN4base8internal7InvokerINS0_9BindStateIMN8chromeos17EasyUnlockServiceEFvvEJNS_7WeakPtrIS4_EEEEEFvvEE7RunImplIRKS6_RKNSt3__15tupleIJS8_EEEJLm0EEEEvOT_OT0_NSF_16integer_sequenceImJXspT1_EEEE #10 0x56c73b72899c _ZN4base8internal7InvokerINS0_9BindStateIMN8chromeos17EasyUnlockServiceEFvvEJNS_7WeakPtrIS4_EEEEEFvvEE3RunEPNS0_13BindStateBaseE #11 0x56c734fed05c _ZNO4base12OnceCallbackIFvvEE3RunEv #12 0x56c73ed7e1a8 base::debug::TaskAnnotator::RunTask() #13 0x56c73eb39136 base::MessageLoop::RunTask() #14 0x56c73eb394de base::MessageLoop::DeferOrRunPendingTask() #15 0x56c73eb399d9 base::MessageLoop::DoWork() #16 0x56c73ed73a35 base::MessagePumpLibevent::Run() #17 0x56c73eb3882b base::MessageLoop::Run() #18 0x56c73ebbaaed base::RunLoop::Run() #19 0x56c73dd77fa3 ChromeBrowserMainParts::MainMessageLoopRun() #20 0x56c73840d811 content::BrowserMainLoop::RunMainMessageLoopParts() #21 0x56c738415eb0 content::BrowserMainRunnerImpl::Run() #22 0x56c73840055b content::BrowserMain() #23 0x56c73dd40217 content::RunBrowserProcessMain() #24 0x56c73dd42b96 content::ContentMainRunnerImpl::Run() #25 0x56c73dd376bc content::ContentServiceManagerMainDelegate::RunEmbedderProcess() #26 0x56c73dd5a84a service_manager::Main() #27 0x56c73dd3dbb3 content::ContentMain() #28 0x56c734e611b8 ChromeMain #29 0x56c734e610a2 main #30 0x7f6879181736 __libc_start_main #31 0x56c734e60f49 _start
,
Aug 29
,
Aug 29
,
Aug 29
,
Aug 29
I have a CL which fixes the crash: https://chromium-review.googlesource.com/c/chromium/src/+/1195931 However, EasyUnlockServiceRegular should also be updated so that it waits until DeviceSyncClient is ready before trying to access its synced devices. Once the CL which fixes this crash lands, we should leave this bug open so that the correct fix can be implemented within EasyUnlock.
,
Aug 29
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6f452dfe25f06aad95744e175e6d292881c6a457 commit 6f452dfe25f06aad95744e175e6d292881c6a457 Author: Kyle Horimoto <khorimoto@google.com> Date: Wed Aug 29 22:15:27 2018 [CrOS MultiDevice] Remove two unnecessary DCHECK()s. These DCHECK()s cause a crash on login when debug mode is enabled (see https://crbug.com/878653 ). Bug: 878653 Change-Id: Iae62dc0bd75018a175299efbae3cb616ae21bc5c Reviewed-on: https://chromium-review.googlesource.com/1195931 Reviewed-by: Alexander Alekseev <alemate@chromium.org> Commit-Queue: Kyle Horimoto <khorimoto@chromium.org> Cr-Commit-Position: refs/heads/master@{#587320} [modify] https://crrev.com/6f452dfe25f06aad95744e175e6d292881c6a457/chromeos/services/device_sync/public/cpp/device_sync_client_impl.cc
,
Aug 29
Assigning to hansberry@ to fix the rest of the issue (see comment #5).
,
Aug 30
Kyle, does the fix need to be merged anywhere?
,
Aug 30
If this is what is causing the crash on Eve, then yes, it needs to be merged back to 69 at least.
,
Aug 30
These are DCHECKs that were removed. This crash is happening on user devices, which wouldn't have DCHECKs enabled. So then maybe this isn't the crash that folks are seeing or that crash is an additional one?
,
Aug 30
Ah nevermind, this isn't the M-69 blocking crash. That crash is tracked here: https://bugs.chromium.org/p/chromium/issues/detail?id=878002
,
Sep 5
This is not a launch-blocker -- it was a crash only in debug mode, which no longer crashes after its culprit DCHECKs were removed. Downgrading priority. As a sidenote, the correct way to resolve this issue will be to put the culprit DCHECKs back, and remove this line [1]. This line is actually not necessary, and was mistakenly placed there. I will send out this proposed fix once our current crunch to get launch blockers in 70 has passed. 1) https://cs.chromium.org/chromium/src/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_regular.cc?q=easyunlockserviceregular&sq=package:chromium&dr=CSs&l=519
,
Sep 17
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/196454e3fde49ffea3b580a520a8778e2133982c commit 196454e3fde49ffea3b580a520a8778e2133982c Author: Ryan Hansberry <hansberry@chromium.org> Date: Mon Sep 17 21:58:03 2018 Smart Lock: Remove unnecessary and incorrect call to DeviceSyncClient. Remove call to DeviceSyncClient::GetSyncedDevices() in EasyUnlockServiceRegular. This call was incorrect because it didn't wait for DeviceSyncClient::Observer::OnReady(), but is also unnecessary because EasyUnlockServiceRegular's override of OnReady() will call GetSyncedDevices() anyway. This CL also puts back DCHECKs within DeviceSyncClient which were removed in [1]. These DCHECKs should remain present to continue catching incorrect calls such as this one. 1) https://chromium-review.googlesource.com/c/chromium/src/+/1195931 R=jhawkins@chromium.org, khorimoto@chromium.org Bug: 878653 Change-Id: Ib13668063be89b3856076c1476cb853215f12f22 Reviewed-on: https://chromium-review.googlesource.com/1218342 Reviewed-by: Kyle Horimoto <khorimoto@chromium.org> Reviewed-by: James Hawkins <jhawkins@chromium.org> Commit-Queue: Ryan Hansberry <hansberry@chromium.org> Cr-Commit-Position: refs/heads/master@{#591835} [modify] https://crrev.com/196454e3fde49ffea3b580a520a8778e2133982c/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_regular.cc [modify] https://crrev.com/196454e3fde49ffea3b580a520a8778e2133982c/chromeos/services/device_sync/public/cpp/device_sync_client_impl.cc
,
Sep 17
|
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by aidrees@chromium.org
, Aug 29