New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 698136 link

Starred by 3 users

Issue metadata

Status: Verified
Owner:
Closed: Mar 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 0
Type: Bug

Blocking:
issue 679810



Sign in to add a comment

Crash during sign-in profile synchronous load

Project Member Reported by emaxx@chromium.org, Mar 3 2017

Issue description

Chrome Version: ToT
OS: Chrome OS / dev Chrome OS build for Linux

What steps will reproduce the problem?
(1) Start Chrome OS.
(2) Induce somehow a crash on the login screen.

What is the expected result?
The login screen restarts.

What happens instead?
It crashes again immediately due to CHECK hit:

[FATAL:device_cloud_policy_manager_chromeos.cc(252)] Check failed: signin_profile_forwarding_schema_registry_. 
#0 0x7f306b2c6f9b base::debug::StackTrace::StackTrace()
#1 0x7f306b2c566c base::debug::StackTrace::StackTrace()
#2 0x7f306b32bfdc logging::LogMessage::~LogMessage()
#3 0x7f306d6ac88d policy::DeviceCloudPolicyManagerChromeOS::StartConnection()
#4 0x7f306d6a8b3f policy::DeviceCloudPolicyInitializer::StartConnection()
#5 0x7f306d6a7907 policy::DeviceCloudPolicyInitializer::TryToCreateClient()
#6 0x7f306d6a8ab9 policy::DeviceCloudPolicyInitializer::OnStoreLoaded()
#7 0x7f305fb9ddfb policy::CloudPolicyStore::NotifyStoreLoaded()
#8 0x7f306d6b3bd2 policy::DeviceCloudPolicyStoreChromeOS::UpdateFromService()
#9 0x7f306d6b39f6 policy::DeviceCloudPolicyStoreChromeOS::DeviceSettingsUpdated()
#10 0x7f306d7b6d41 chromeos::DeviceSettingsService::NotifyDeviceSettingsUpdated()
#11 0x7f306d7b62a8 chromeos::DeviceSettingsService::HandleCompletedOperation()
#12 0x7f306d7bb4fe _ZN4base8internal13FunctorTraitsIMN8chromeos21DeviceSettingsServiceEFvRKNS_8CallbackIFvvELN
S0_8CopyModeE1ELNS0_10RepeatModeE1EEEPNS2_23SessionManagerOperationENS3_6StatusEEvE6InvokeIRKNS_7WeakPtrIS3_EE
JSA_SC_SD_EEEvSF_OT_DpOT0_
#13 0x7f306d7bb409 _ZN4base8internal12InvokeHelperILb1EvE8MakeItSoIRKMN8chromeos21DeviceSettingsServiceEFvRKNS
_8CallbackIFvvELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEEPNS4_23SessionManagerOperationENS5_6StatusEERKNS_7WeakPt
rIS5_EEJSC_SE_SF_EEEvOT_OT0_DpOT1_
#14 0x7f306d7bb34d _ZN4base8internal7InvokerINS0_9BindStateIMN8chromeos21DeviceSettingsServiceEFvRKNS_8Callbac
kIFvvELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEEPNS3_23SessionManagerOperationENS4_6StatusEEJNS_7WeakPtrIS4_EES9_
EEEFvSD_SE_EE7RunImplIRKSG_RKSt5tupleIJSI_S9_EEJLm0ELm1EEEEvOT_OT0_NS_13IndexSequenceIJXspT1_EEEEOSD_OSE_
#15 0x7f306d7bb23e _ZN4base8internal7InvokerINS0_9BindStateIMN8chromeos21DeviceSettingsServiceEFvRKNS_8Callbac
kIFvvELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEEPNS3_23SessionManagerOperationENS4_6StatusEEJNS_7WeakPtrIS4_EES9_
EEEFvSD_SE_EE3RunEPNS0_13BindStateBaseEOSD_OSE_
#16 0x7f306c90898a base::internal::RunMixin<>::Run()
#17 0x7f306d7c6cbd chromeos::SessionManagerOperation::ReportResult()
#18 0x7f306d7c71e4 chromeos::SessionManagerOperation::ReportValidatorStatus()
#19 0x7f306d7c6f7b chromeos::SessionManagerOperation::ValidateDeviceSettings()
#20 0x7f306d7c6a36 chromeos::SessionManagerOperation::BlockingRetrieveDeviceSettings()
#21 0x7f306c699447 _ZN4base8internal13FunctorTraitsIMN11google_apis19UrlFetchRequestBaseEFvvEvE6InvokeIRKNS_7W
eakPtrINS2_5drive30SingleBatchableDelegateRequestEEEJEEEvS5_OT_DpOT0_
#22 0x7f306d7c7d1a _ZN4base8internal12InvokeHelperILb1EvE8MakeItSoIRKMN8chromeos23SessionManagerOperationEFvvE
RKNS_7WeakPtrIS5_EEJEEEvOT_OT0_DpOT1_
#23 0x7f306d7c7ca2 _ZN4base8internal7InvokerINS0_9BindStateIMN8chromeos23SessionManagerOperationEFvvEJNS_7Weak
PtrIS4_EEEEEFvvEE7RunImplIRKS6_RKSt5tupleIJS8_EEJLm0EEEEvOT_OT0_NS_13IndexSequenceIJXspT1_EEEE
#24 0x7f306d7c7bec _ZN4base8internal7InvokerINS0_9BindStateIMN8chromeos23SessionManagerOperationEFvvEJNS_7Weak
PtrIS4_EEEEEFvvEE3RunEPNS0_13BindStateBaseE
#25 0x7f306c5b00ab base::internal::RunMixin<>::Run()
#26 0x7f306d7c69f8 chromeos::SessionManagerOperation::StorePublicKey()
#27 0x7f306d7c6938 chromeos::SessionManagerOperation::LoadImmediately()
#28 0x7f306d7c72ea chromeos::LoadSettingsOperation::Run()
#29 0x7f306d7c653c chromeos::SessionManagerOperation::Start()
#30 0x7f306d7b5f1c chromeos::DeviceSettingsService::LoadImmediately()
#31 0x7f306eb5d575 ProfileImpl::ProfileImpl()
#32 0x7f306eb5c289 Profile::CreateProfile()
#33 0x7f306e579bf7 ProfileManager::CreateProfileHelper()
#34 0x7f306e57229e ProfileManager::CreateAndInitializeProfile()
#35 0x7f306e571ed7 ProfileManager::GetProfile()
#36 0x7f306e57198d ProfileManager::GetActiveUserOrOffTheRecordProfileFromPath()
#37 0x7f306e571cb5 ProfileManager::GetActiveUserProfile()
#38 0x7f306e363058 (anonymous namespace)::CreatePrimaryProfile()
#39 0x7f306e361884 ChromeBrowserMainParts::PreMainMessageLoopRunImpl()
#40 0x7f306e360d50 ChromeBrowserMainParts::PreMainMessageLoopRun()
#41 0x7f306d28170b chromeos::ChromeBrowserMainPartsChromeos::PreMainMessageLoopRun()
#42 0x7f3064a89e41 content::BrowserMainLoop::PreMainMessageLoopRun()
#43 0x7f3063fa3c55 _ZN4base8internal13FunctorTraitsIMN7content22IndexedDBCallbacksImpl13InternalStateEFvvEvE6In
vokeIPS4_JEEEvS6_OT_DpOT0_
#44 0x7f3064a94801 _ZN4base8internal12InvokeHelperILb0EiE8MakeItSoIRKMN7content15BrowserMainLoopEFivEJPS5_EEEiO
T_DpOT0_
#45 0x7f3064a947a7 _ZN4base8internal7InvokerINS0_9BindStateIMN7content15BrowserMainLoopEFivEJNS0_17UnretainedWr
apperIS4_EEEEEFivEE7RunImplIRKS6_RKSt5tupleIJS8_EEJLm0EEEEiOT_OT0_NS_13IndexSequenceIJXspT1_EEEE
#46 0x7f3064a946ec _ZN4base8internal7InvokerINS0_9BindStateIMN7content15BrowserMainLoopEFivEJNS0_17UnretainedWr
apperIS4_EEEEEFivEE3RunEPNS0_13BindStateBaseE
#47 0x7f3063e93ffb base::internal::RunMixin<>::Run()
#48 0x7f306558a38b content::StartupTaskRunner::RunAllTasksNow()
#49 0x7f3064a87b20 content::BrowserMainLoop::CreateStartupTasks()
#50 0x7f3064a98287 content::BrowserMainRunnerImpl::Initialize()
#51 0x7f3064a840cf content::BrowserMain()
#52 0x7f3066172266 content::RunNamedProcessTypeMain()
#53 0x7f306617427e content::ContentMainRunnerImpl::Run()
#54 0x7f30661712a2 content::ContentMain()
#55 0x7f306c596036 ChromeMain
#56 0x7f306c595ef2 main
#57 0x7f3053637f45 __libc_start_main
#58 0x7f306c595df5 <unknown>


Seems that the crash has been induced by the recent change (commit afc9d60e96d31a11f756d5c56c2be54a28130960 which was a fix for P0 bug 679810).
 

Comment 1 by emaxx@chromium.org, Mar 3 2017

Working on fix in progress: http://crrev.com/2729093002.

Comment 2 by emaxx@chromium.org, Mar 3 2017

Cc: atwilson@chromium.org

Comment 3 by emaxx@chromium.org, Mar 3 2017

Description: Show this description

Comment 4 by emaxx@chromium.org, Mar 3 2017

Just to clarify: this bug is about going into infinite crash-restart loop _once_ a crash for some reason happens.
Project Member

Comment 5 by bugdroid1@chromium.org, Mar 3 2017

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

commit 9bae7d67f2a11bc706b9becb3aefa2d2e0286ff0
Author: emaxx <emaxx@chromium.org>
Date: Fri Mar 03 18:24:36 2017

Fix crash during sync load of the signin profile

This fixes hitting a CHECK during restore-after-crash of the
signin profile in case of enrolled device:
[FATAL:device_cloud_policy_manager_chromeos.cc(252)] Check
failed: signin_profile_forwarding_schema_registry_.

The crash was caused by an attempt to start connection for
the device cloud policy manager _before_ the schema
registry of the sign-in profile is passed to it.

This has regressed recently due to the change in commit
afc9d60e96d31a11f756d5c56c2be54a28130960, which, in
particular, made the DeviceSettingsService load much
earlier than previously in case when restore-after-crash
happens. The DeviceSettingsService loading triggers
DeviceCloudPolicyManagerChromeOS::StartConnection(),
which hits a CHECK because this all happens before the
schema registry gets a chance to be passed by
ProfilePolicyConnectorFactory::CreateForBrowserContextInternal().

The fix is to pass the schema registry from a different
location - directly from
SchemaRegistryServiceFactory::CreateForContextInternal() that
constructs the schema registry. This is guaranteed by the
current code to be run before the DeviceSettingsService load
happens.

BUG= 698136 
TEST=manual: induce a crash on signin screen on an enrolled
    device and verify that automatic restart works

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

[modify] https://crrev.com/9bae7d67f2a11bc706b9becb3aefa2d2e0286ff0/chrome/browser/policy/profile_policy_connector_factory.cc
[modify] https://crrev.com/9bae7d67f2a11bc706b9becb3aefa2d2e0286ff0/chrome/browser/policy/schema_registry_service_factory.cc

Cc: elijahtaylor@chromium.org keta...@chromium.org
Labels: M-57 Merge-Request-58 Merge-Request-57 M-58
this was caused by issue 679810 CLs right?  if it gets merged we need to merge this

It also doesn't look like it made the cutoff for M-58, but the other CLs did.
Project Member

Comment 7 by sheriffbot@chromium.org, Mar 4 2017

Labels: -Merge-Request-57 Hotlist-Merge-Review Merge-Review-57
This bug requires manual review: We are only 9 days from stable.
Please contact the milestone owner if you have questions.
Owners: amineer@(clank), cmasso@(bling), ketakid@(cros), govind@(desktop)

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

Comment 8 by emaxx@chromium.org, Mar 4 2017

Status: Fixed (was: Started)
Re comment 6: Yes, the bugfix here has to be merged everywhere where the change from issue 679810 by poromov@ lands.
But this bugfix was tested only locally by me - it hasn't reached any build at goldeneye yet.
Project Member

Comment 9 by sheriffbot@chromium.org, Mar 4 2017

Labels: -Merge-Request-58 Hotlist-Merge-Approved Merge-Approved-58
Your change meets the bar and is auto-approved for M58. Please go ahead and merge the CL to branch 3029 manually. Please contact milestone owner if you have questions.
Owners: amineer@(clank), cmasso@(bling), bhthompson@(cros), govind@(desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Cc: trapti@chromium.org
Cc: kathrelk...@chromium.org krishna...@chromium.org
We are still encountering continuous crash as mentioned in the below bug in latest M58 ToT.

Can't mark it verified until below bug is fixed and verified.

https://bugs.chromium.org/p/chromium/issues/detail?id=698057
Re comment 11: Which version was it tested on? The patch here went into 59.0.3032.0, which is not the current live Canary yet.
@emaxx We have tried in M58.Thanks for the information.

M	ChromeOS	Chrome	ARC	Type	Channel
58	9334.0.0	58.0.3028.0	(multiple)	release	dev
Verified manually on Canary channel (59.0.3032.0).
Going to merge into M58.
Project Member

Comment 15 by bugdroid1@chromium.org, Mar 7 2017

Labels: -merge-approved-58 merge-merged-3029
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1ef634f4f3ddb8614932d541c203f5584288abc4

commit 1ef634f4f3ddb8614932d541c203f5584288abc4
Author: Maksim Ivanov <emaxx@chromium.org>
Date: Tue Mar 07 15:47:35 2017

Fix crash during sync load of the signin profile

This fixes hitting a CHECK during restore-after-crash of the
signin profile in case of enrolled device:
[FATAL:device_cloud_policy_manager_chromeos.cc(252)] Check
failed: signin_profile_forwarding_schema_registry_.

The crash was caused by an attempt to start connection for
the device cloud policy manager _before_ the schema
registry of the sign-in profile is passed to it.

This has regressed recently due to the change in commit
afc9d60e96d31a11f756d5c56c2be54a28130960, which, in
particular, made the DeviceSettingsService load much
earlier than previously in case when restore-after-crash
happens. The DeviceSettingsService loading triggers
DeviceCloudPolicyManagerChromeOS::StartConnection(),
which hits a CHECK because this all happens before the
schema registry gets a chance to be passed by
ProfilePolicyConnectorFactory::CreateForBrowserContextInternal().

The fix is to pass the schema registry from a different
location - directly from
SchemaRegistryServiceFactory::CreateForContextInternal() that
constructs the schema registry. This is guaranteed by the
current code to be run before the DeviceSettingsService load
happens.

BUG= 698136 
TEST=manual: induce a crash on signin screen on an enrolled
    device and verify that automatic restart works

Review-Url: https://codereview.chromium.org/2729093002
Cr-Commit-Position: refs/heads/master@{#454627}
(cherry picked from commit 9bae7d67f2a11bc706b9becb3aefa2d2e0286ff0)

Review-Url: https://codereview.chromium.org/2739453004 .
Cr-Commit-Position: refs/branch-heads/3029@{#42}
Cr-Branched-From: 939b32ee5ba05c396eef3fd992822fcca9a2e262-refs/heads/master@{#454471}

[modify] https://crrev.com/1ef634f4f3ddb8614932d541c203f5584288abc4/chrome/browser/policy/profile_policy_connector_factory.cc
[modify] https://crrev.com/1ef634f4f3ddb8614932d541c203f5584288abc4/chrome/browser/policy/schema_registry_service_factory.cc

Comment 16 by ketakid@google.com, Mar 17 2017

Labels: -Merge-Review-57 Merge-Approved-57
Approving merge to M57 Chrome OS.emaxx@ please merge to M57 by eod today to make this into stable RC.
Project Member

Comment 17 by bugdroid1@chromium.org, Mar 17 2017

Labels: -merge-approved-57 merge-merged-2987
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c6eda44c1f47f76e757c610e873ad5c02a8116e1

commit c6eda44c1f47f76e757c610e873ad5c02a8116e1
Author: Maksim Ivanov <emaxx@chromium.org>
Date: Fri Mar 17 20:32:22 2017

Fix crash during sync load of the signin profile

This fixes hitting a CHECK during restore-after-crash of the
signin profile in case of enrolled device:
[FATAL:device_cloud_policy_manager_chromeos.cc(252)] Check
failed: signin_profile_forwarding_schema_registry_.

The crash was caused by an attempt to start connection for
the device cloud policy manager _before_ the schema
registry of the sign-in profile is passed to it.

This has regressed recently due to the change in commit
afc9d60e96d31a11f756d5c56c2be54a28130960, which, in
particular, made the DeviceSettingsService load much
earlier than previously in case when restore-after-crash
happens. The DeviceSettingsService loading triggers
DeviceCloudPolicyManagerChromeOS::StartConnection(),
which hits a CHECK because this all happens before the
schema registry gets a chance to be passed by
ProfilePolicyConnectorFactory::CreateForBrowserContextInternal().

The fix is to pass the schema registry from a different
location - directly from
SchemaRegistryServiceFactory::CreateForContextInternal() that
constructs the schema registry. This is guaranteed by the
current code to be run before the DeviceSettingsService load
happens.

BUG= 698136 
TEST=manual: induce a crash on signin screen on an enrolled
    device and verify that automatic restart works

Review-Url: https://codereview.chromium.org/2729093002
Cr-Commit-Position: refs/heads/master@{#454627}
(cherry picked from commit 9bae7d67f2a11bc706b9becb3aefa2d2e0286ff0)

Review-Url: https://codereview.chromium.org/2739453004 .
Cr-Commit-Position: refs/branch-heads/3029@{#42}
Cr-Branched-From: 939b32ee5ba05c396eef3fd992822fcca9a2e262-refs/heads/master@{#454471}
(cherry picked from commit 1ef634f4f3ddb8614932d541c203f5584288abc4)

Review-Url: https://codereview.chromium.org/2759773002 .
Cr-Commit-Position: refs/branch-heads/2987@{#842}
Cr-Branched-From: ad51088c0e8776e8dcd963dbe752c4035ba6dab6-refs/heads/master@{#444943}

[modify] https://crrev.com/c6eda44c1f47f76e757c610e873ad5c02a8116e1/chrome/browser/policy/profile_policy_connector_factory.cc
[modify] https://crrev.com/c6eda44c1f47f76e757c610e873ad5c02a8116e1/chrome/browser/policy/schema_registry_service_factory.cc

Status: Verified (was: Fixed)
Verified in M58. Do not see similar behavior of crash again after inducing crash.

M	ChromeOS	Chrome	ARC	Type	Channel
58	9334.16.0	58.0.3029.19	(multiple)	release	dev

Sign in to add a comment