DCHECK fail in policy::StatusUploader at login screen |
||||
Issue descriptionChrome Version: HEAD Platform: 11278.0.0 What steps will reproduce the problem? (1) Enabled DCHECKs (2) Deploy chrome (3) Observe crash loop gdb provides: #0 0x000058e1dde5748a in logging::LogMessage::~LogMessage() () at ../../base/logging.cc:874 #1 0x000058e1dc176930 in policy::StatusUploader::StatusUploader(policy::CloudPolicyClient*, std::__1::unique_ptr<policy::DeviceStatusCollector, std::__1::default_delete<policy::DeviceStatusCollector> >, scoped_refptr<base::SequencedTaskRunner> const&, base::TimeDelta) () at ../../chrome/browser/chromeos/policy/status_uploader.cc:58 #2 0x000058e1dc1351b7 in policy::DeviceCloudPolicyManagerChromeOS::CreateStatusUploader() () at ../../chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.cc:380 #3 0x000058e1dc134f90 in policy::DeviceCloudPolicyManagerChromeOS::StartConnection(std::__1::unique_ptr<policy::CloudPolicyClient, #4 0x000058e1dc13104c in policy::DeviceCloudPolicyInitializer::TryToCreateClient() () at ../../chrome/browser/chromeos/policy/device_cloud_policy_initializer.cc:333 ... The culprit DCHECK is at status_uploader.cc:58. Owners, please prioritize this issue -- other developers cannot develop and test Chrome with DCHECKs on.
,
Dec 13
,
Jan 2
Looks like that bug arises if there are different opinions about if client is cloud-registered: it is so according to install attributes, but not to policy store. That explains why I couldn't reproduce it on my testing device. hansberry@, could you please provide more info about how did you run into this? Ex. was your device enrolled/just powerwashed/filled with a new chromeos build? And, if you will run into this next time, could you please provide more lines of stacktrace? I wonder where TryToCreateClient was called.
,
Jan 7
I found an old bug on the same topic: https://bugs.chromium.org/p/chromium/issues/detail?id=705607 The only place where we use client in StatusUploader is, actually, uploading a status, and after that fix (in mid 2017) there is an additional check if client is registered (with a log message if not) before doing anything that required client to be registered. So, by now, I suppose, we can just remove this DCHECK. Old bug also explains cases when this registered/unregistered unsyncronization may arise.
,
Jan 10
I don't believe these was anything special about my device -- it had had the same chromeos image for at least a week before, and the account had been present for at least a week as well. The device is a Pixelbook, if that matters. I'll keep an eye out for this in the next few days while deploying chrome to this same device. If no one else is hitting this, it can definitely be de-prioritized.
,
Jan 16
(6 days ago)
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/43132ffeb2245cfc7996e11acfeffb163ab0a380 commit 43132ffeb2245cfc7996e11acfeffb163ab0a380 Author: Oleg Davydov <burunduk@google.com> Date: Wed Jan 16 10:35:17 2019 Remove check for client registration in StatusUploader ctor StatusUploader's work makes sence only if working on managed device with resitered client, but due to some missynchonizations we may not know if it's registered client when creating StatusUploader. That's why there is an extra registered check before submitting status. See more in: https://bugs.chromium.org/p/chromium/issues/detail?id=705607 Therefore check in StatusUploader constructor is redundant and causes only problems when dchecks are enabled: https://bugs.chromium.org/p/chromium/issues/detail?id=912770 Bug: 912770 Change-Id: Ib9c4001b87834286a36cbe3ca123f1c456844ad9 Reviewed-on: https://chromium-review.googlesource.com/c/1400664 Reviewed-by: Maksim Ivanov <emaxx@chromium.org> Commit-Queue: Oleg Davydov <burunduk@google.com> Cr-Commit-Position: refs/heads/master@{#623183} [modify] https://crrev.com/43132ffeb2245cfc7996e11acfeffb163ab0a380/chrome/browser/chromeos/policy/status_uploader.cc
,
Jan 16
(6 days ago)
,
Jan 16
(6 days ago)
HI Oleg, Could you provide steps if this requires manual verification.? Thanks.!
,
Jan 17
(5 days ago)
Hi! I don't think it requires any manual checks. It was about removing a bogus DCHECK. Old bug 705607 explains why it's bogus (there are some circumstances that are technically valid, but lead to breaking this check, and they were handled in the proper way), and that bag was closed in summer 2017. DCHECK's are not enabled in release binaries, so I changed almost nothing. Theoretically is't possible (but not easy, even hansberry@, as I can see in comment #5, doesn't know the right conditions) to make a test build, than trigger this check and see that problem (repeating crashes) arises only in old build. But I'm definitely not sure if it's worth of it.
,
Jan 18
(5 days ago)
Thanks Oleg, Closing the issue as per the confirmation. |
||||
►
Sign in to add a comment |
||||
Comment 1 by atwilson@chromium.org
, Dec 7Owner: poromov@chromium.org