New issue
Advanced search Search tips

Issue 801394 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Jan 2018
Cc:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

Chrome crashes on start on samus

Project Member Reported by rjkroege@chromium.org, Jan 12 2018

Issue description

On ChromeOS samus,

Without https://chromium-review.googlesource.com/849633, (i.e. the immediately prior CL) Chrome runs correctly.

With https://chromium-review.googlesource.com/849633, Chrome crashes on start like this:

[25779:25779:0111/194909.150774:ERROR:display_manager.cc(1818)] Could not find display:13761487533244416
[25779:25793:0111/194909.201987:ERROR:object_proxy.cc(626)] Failed to call method: org.chromium.SessionManagerInterface.RetrievePolicyEx: object_path= /org/chromium/SessionManager: org.freedesktop.DBus.Error.ServiceUnknown: The name org.chromium.SessionManager was not provided by any .service files
[25779:25779:0111/194909.202031:ERROR:device_settings_service.cc(314)] Session manager operation failed: 3
[25779:25779:0111/194909.202090:ERROR:device_settings_provider.cc(875)] Corruption of the policy data has been detected.Switching to "safe-mode" policies until the owner logs in to regenerate the policy data.
[25779:25779:0111/194909.222741:ERROR:input_method_manager_impl.cc(1032)] IMEEngine for "fgoepimhcoialccpbmpnnblemnepkkao" is not registered
[25779:25779:0111/194909.262517:ERROR:object_proxy.cc(626)] Failed to call method: org.chromium.SessionManagerInterface.GetServerBackedStateKeys: object_path= /org/chromium/SessionManager: org.freedesktop.DBus.Error.ServiceUnknown: The name org.chromium.SessionManager was not provided by any .service files
device-enumerator: scan all dirs
  device-enumerator: scanning /sys/bus
  device-enumerator: scanning /sys/class
device-enumerator: scan all dirs
  device-enumerator: scanning /sys/bus
  device-enumerator: scanning /sys/class
[25779:25779:0111/194909.293308:ERROR:component_extension_ime_manager_impl.cc(138)] IME extension file path does not exist: /usr/share/chromeos-assets/input_methods/xkb
[25779:25779:0111/194909.293339:ERROR:component_extension_ime_manager_impl.cc(138)] IME extension file path does not exist: /usr/share/chromeos-assets/input_methods/xkb
[25779:25779:0111/194909.293350:ERROR:component_extension_ime_manager_impl.cc(138)] IME extension file path does not exist: /usr/share/chromeos-assets/input_methods/xkb
[25779:25779:0111/194909.293360:ERROR:component_extension_ime_manager_impl.cc(138)] IME extension file path does not exist: /usr/share/chromeos-assets/input_methods/xkb
[25779:25779:0111/194909.293374:ERROR:component_extension_ime_manager_impl.cc(138)] IME extension file path does not exist: /usr/share/chromeos-assets/input_methods/xkb
[25779:25779:0111/194909.293383:ERROR:component_extension_ime_manager_impl.cc(138)] IME extension file path does not exist: /usr/share/chromeos-assets/input_methods/xkb
[25779:25779:0111/194909.293424:ERROR:component_extension_ime_manager_impl.cc(138)] IME extension file path does not exist: /usr/share/chromeos-assets/input_methods/xkb
[25779:25779:0111/194909.293434:ERROR:component_extension_ime_manager_impl.cc(138)] IME extension file path does not exist: /usr/share/chromeos-assets/input_methods/xkb
[25779:25779:0111/194909.321003:ERROR:device_settings_service.cc(314)] Session manager operation failed: 3
[25779:25779:0111/194909.325527:ERROR:device_settings_provider.cc(875)] Corruption of the policy data has been detected.Switching to "safe-mode" policies until the owner logs in to regenerate the policy data.
[25779:25779:0111/194909.335730:ERROR:device_settings_service.cc(314)] Session manager operation failed: 3
[25779:25779:0111/194909.335923:ERROR:device_settings_provider.cc(875)] Corruption of the policy data has been detected.Switching to "safe-mode" policies until the owner logs in to regenerate the policy data.
[25779:25779:0111/194909.345940:FATAL:display_configurator.cc(546)] Check failed: current_display_state_ == MULTIPLE_DISPLAY_STATE_INVALID (2 vs. 0)
#0 0x5920a07f443c base::debug::StackTrace::StackTrace()
#1 0x5920a0812993 logging::LogMessage::~LogMessage()
#2 0x5920a27cd7ca display::DisplayConfigurator::SetInitialDisplayPower()
#3 0x5920a2e69b45 ash::DisplayPrefs::LoadDisplayPreferences()
#4 0x5920a2e68a16 ash::DisplayPrefs::OnLocalStatePrefServiceInitialized()
#5 0x5920a2ea58fc ash::Shell::OnLocalStatePrefServiceInitialized()
#6 0x59209e518e4f _ZN4base8internal7InvokerINS0_9BindStateIMN6policy19URLBlacklistManagerEFvNSt3__110unique_ptrINS3_12URLBlacklistENS5_14default_deleteIS7_EEEEEJNS_7WeakPtrIS4_EEEEEFvSA_EE7RunImplISC_NS5_5tupleIJSE_EEEJLm0EEEEvOT_OT0_NS5_16integer_sequenceImJXspT1_EEEEOSA_
#7 0x59209e4f7277 prefs::(anonymous namespace)::OnConnect()
#8 0x59209e4f82b6 _ZN4base8internal7InvokerINS0_9BindStateIPFv13scoped_refptrIN5prefs12_GLOBAL__N_122RefCountedInterfacePtrINS4_5mojom18PrefStoreConnectorEEEES3_I12PrefRegistryENS_17RepeatingCallbackIFvNSt3__110unique_ptrI11PrefServiceNSE_14default_deleteISG_EEEEEEEN4mojo9StructPtrINS7_29PersistentPrefStoreConnectionEEENSN_INS7_38IncognitoPersistentPrefStoreConnectionEEENSE_6vectorINSN_INS7_16PrefRegistrationEEENSE_9allocatorISU_EEEENSE_13unordered_mapIN14PrefValueStore13PrefStoreTypeENSN_INS7_19PrefStoreConnectionEEENSE_4hashIS10_EENSE_8equal_toIS10_EENSV_INSE_4pairIKS10_S12_EEEEEEEJSA_SC_SL_EEEFvSP_SR_SX_S1B_EE7RunOnceEPNS0_13BindStateBaseEOSP_OSR_OSX_OS1B_
#9 0x59209e4fce26 prefs::mojom::PrefStoreConnector_Connect_ForwardToCallback::Accept()
#10 0x5920a147056a mojo::InterfaceEndpointClient::HandleValidatedMessage()
#11 0x5920a1489e46 mojo::FilterChain::Accept()
#12 0x5920a1471942 mojo::InterfaceEndpointClient::HandleIncomingMessage()
#13 0x5920a147b362 mojo::internal::MultiplexRouter::ProcessIncomingMessage()
#14 0x5920a147a7e7 mojo::internal::MultiplexRouter::Accept()
#15 0x5920a1489e46 mojo::FilterChain::Accept()
#16 0x5920a146f2dd mojo::Connector::ReadSingleMessage()
#17 0x5920a146fd74 mojo::Connector::ReadAllAvailableMessages()
#18 0x5920a146fbd6 mojo::Connector::OnHandleReadyInternal()
#19 0x59209e413c14 mojo::SimpleWatcher::DiscardReadyState()
#20 0x5920a1490d95 mojo::SimpleWatcher::OnHandleReady()
#21 0x5920a149131e _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo13SimpleWatcherEFvijRKNS3_18HandleSignalsStateEEJNS_7WeakPtrIS4_EEijS5_EEEFvvEE7RunImplIRKS9_RKNSt3__15tupleIJSB_ijS5_EEEJLm0ELm1ELm2ELm3EEEEvOT_OT0_NSI_16integer_sequenceImJXspT1_EEEE
#22 0x5920a07f4c98 base::debug::TaskAnnotator::RunTask()
#23 0x5920a08bf656 base::internal::IncomingTaskQueue::RunTask()
#24 0x5920a0819f0d base::MessageLoop::RunTask()
#25 0x5920a081a314 base::MessageLoop::DeferOrRunPendingTask()
#26 0x5920a081a5d2 base::MessageLoop::DoWork()
#27 0x5920a081c989 base::MessagePumpLibevent::Run()
#28 0x5920a081977c base::MessageLoop::Run()
#29 0x5920a0848106 base::RunLoop::Run()
#30 0x5920a0413917 ChromeBrowserMainParts::MainMessageLoopRun()
#31 0x59209e6ca1a4 content::BrowserMainLoop::RunMainMessageLoopParts()
#32 0x59209e6cd713 content::BrowserMainRunnerImpl::Run()
#33 0x59209e6c5cee content::BrowserMain()
#34 0x5920a03fa544 content::RunNamedProcessTypeMain()
#35 0x5920a03fb097 content::ContentMainRunnerImpl::Run()
#36 0x5920a04076b9 service_manager::Main()
#37 0x5920a03f98d1 content::ContentMain()
#38 0x59209dbfdad6 ChromeMain
#39 0x746c47f2d736 __libc_start_main
#40 0x59209dbfd739 _start

Received signal 6
#0 0x5920a07f443c base::debug::StackTrace::StackTrace()
#1 0x5920a07f3f11 base::debug::(anonymous namespace)::StackDumpSignalHandler()
#2 0x746c48ece2e0 <unknown>
#3 0x746c47f40dd2 gsignal
#4 0x746c47f42bf6 abort
#5 0x5920a07f2845 base::debug::BreakDebugger()
#6 0x5920a0812dbd logging::LogMessage::~LogMessage()
#7 0x5920a27cd7ca display::DisplayConfigurator::SetInitialDisplayPower()
#8 0x5920a2e69b45 ash::DisplayPrefs::LoadDisplayPreferences()
#9 0x5920a2e68a16 ash::DisplayPrefs::OnLocalStatePrefServiceInitialized()
#10 0x5920a2ea58fc ash::Shell::OnLocalStatePrefServiceInitialized()
#11 0x59209e518e4f _ZN4base8internal7InvokerINS0_9BindStateIMN6policy19URLBlacklistManagerEFvNSt3__110unique_ptrINS3_12URLBlacklistENS5_14default_deleteIS7_EEEEEJNS_7WeakPtrIS4_EEEEEFvSA_EE7RunImplISC_NS5_5tupleIJSE_EEEJLm0EEEEvOT_OT0_NS5_16integer_sequenceImJXspT1_EEEEOSA_
#12 0x59209e4f7277 prefs::(anonymous namespace)::OnConnect()
#13 0x59209e4f82b6 _ZN4base8internal7InvokerINS0_9BindStateIPFv13scoped_refptrIN5prefs12_GLOBAL__N_122RefCountedInterfacePtrINS4_5mojom18PrefStoreConnectorEEEES3_I12PrefRegistryENS_17RepeatingCallbackIFvNSt3__110unique_ptrI11PrefServiceNSE_14default_deleteISG_EEEEEEEN4mojo9StructPtrINS7_29PersistentPrefStoreConnectionEEENSN_INS7_38IncognitoPersistentPrefStoreConnectionEEENSE_6vectorINSN_INS7_16PrefRegistrationEEENSE_9allocatorISU_EEEENSE_13unordered_mapIN14PrefValueStore13PrefStoreTypeENSN_INS7_19PrefStoreConnectionEEENSE_4hashIS10_EENSE_8equal_toIS10_EENSV_INSE_4pairIKS10_S12_EEEEEEEJSA_SC_SL_EEEFvSP_SR_SX_S1B_EE7RunOnceEPNS0_13BindStateBaseEOSP_OSR_OSX_OS1B_
#14 0x59209e4fce26 prefs::mojom::PrefStoreConnector_Connect_ForwardToCallback::Accept()
#15 0x5920a147056a mojo::InterfaceEndpointClient::HandleValidatedMessage()
#16 0x5920a1489e46 mojo::FilterChain::Accept()
#17 0x5920a1471942 mojo::InterfaceEndpointClient::HandleIncomingMessage()
#18 0x5920a147b362 mojo::internal::MultiplexRouter::ProcessIncomingMessage()
#19 0x5920a147a7e7 mojo::internal::MultiplexRouter::Accept()
#20 0x5920a1489e46 mojo::FilterChain::Accept()
#21 0x5920a146f2dd mojo::Connector::ReadSingleMessage()
#22 0x5920a146fd74 mojo::Connector::ReadAllAvailableMessages()
#23 0x5920a146fbd6 mojo::Connector::OnHandleReadyInternal()
#24 0x59209e413c14 mojo::SimpleWatcher::DiscardReadyState()
#25 0x5920a1490d95 mojo::SimpleWatcher::OnHandleReady()
#26 0x5920a149131e _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo13SimpleWatcherEFvijRKNS3_18HandleSignalsStateEEJNS_7WeakPtrIS4_EEijS5_EEEFvvEE7RunImplIRKS9_RKNSt3__15tupleIJSB_ijS5_EEEJLm0ELm1ELm2ELm3EEEEvOT_OT0_NSI_16integer_sequenceImJXspT1_EEEE
#27 0x5920a07f4c98 base::debug::TaskAnnotator::RunTask()
#28 0x5920a08bf656 base::internal::IncomingTaskQueue::RunTask()
#29 0x5920a0819f0d base::MessageLoop::RunTask()
#30 0x5920a081a314 base::MessageLoop::DeferOrRunPendingTask()
#31 0x5920a081a5d2 base::MessageLoop::DoWork()
#32 0x5920a081c989 base::MessagePumpLibevent::Run()
#33 0x5920a081977c base::MessageLoop::Run()
#34 0x5920a0848106 base::RunLoop::Run()
#35 0x5920a0413917 ChromeBrowserMainParts::MainMessageLoopRun()
#36 0x59209e6ca1a4 content::BrowserMainLoop::RunMainMessageLoopParts()
#37 0x59209e6cd713 content::BrowserMainRunnerImpl::Run()
#38 0x59209e6c5cee content::BrowserMain()
#39 0x5920a03fa544 content::RunNamedProcessTypeMain()
#40 0x5920a03fb097 content::ContentMainRunnerImpl::Run()
#41 0x5920a04076b9 service_manager::Main()
#42 0x5920a03f98d1 content::ContentMain()
#43 0x59209dbfdad6 ChromeMain
#44 0x746c47f2d736 __libc_start_main
#45 0x59209dbfd739 _start
  r8: 00007ffe321ef240  r9: 0000746c47624780 r10: 0000000000000008 r11: 0000000000000202
 r12: 00007ffe321ef690 r13: 0000000000000094 r14: 00007ffe321ef240 r15: 00007ffe321ef688
  di: 00000000000064b3  si: 00000000000064b3  bp: 00007ffe321ef1d0  bx: 0000746c482b27a0
  dx: 0000000000000006  ax: 0000000000000000  cx: ffffffffffffffff  sp: 00007ffe321ef0a8
  ip: 0000746c47f40dd2 efl: 0000000000000202 cgf: 0000000000000033 erf: 0000000000000000
 trp: 0000000000000000 msk: 0000000000000000 cr2: 0000000000000000
[end of stack trace]
Calling _exit(1). Core file will not be generated.

 
continues to be the case as of 8322e656602b2e61bed407915624e0662231b331
Status: Started (was: Assigned)
Could you provide instructions on how exactly you are producing this and where the log is coming from? i.e. gn args, flags set in /etc/chrome_dev.conf.

I am seeing chrome crashes, but I am not seeing the call stack :(

ARGS.gn: as per the simple chrome environment variable but with dcheck_always_on = true

Run from ssh session:

sudo -u chronos ./chrome   --user-data-dir=/home/chronos --homedir=/ --login-managerdcheck_always_on = true   

Running with start ui doesn't work either BTW. I just find running from ssh session makes startup logging from DRM easier to read.
Cc: osh...@chromium.org dnicoara@chromium.org derat@chromium.org
+derat@

Briefly:
* I moved DisplayPrefs from src/chrome -> src/ash: https://chromium-review.googlesource.com/c/chromium/src/+/849633
* src/ash loads local_state_ asynchronously, so I modified DisplayPrefs::LoadDisplayPreferences to be called from ShellObserver::OnLocalStatePrefServiceInitialized
* This can result in ash::Shell::Get()->display_configurator()->SetInitialDisplayPower() getting called after DisplayConfigurator::OnConfigured() gets called
* That causes the DCHECK triggered above: FATAL:display_configurator.cc(546)] Check failed: current_display_state_ == MULTIPLE_DISPLAY_STATE_INVALID (2 vs. 0)

I had thought this was only an issue with mus/mash, but after looking at the code more carefully I realized there is a timing issue in classic ash also if Shell::OnLocalStatePrefServiceInitialized gets called after DisplayConfigurator::OnConfigured gets triggered.

We have a couple of options:
1. I can revert my changes and we can postpone this cleanup until we can design it more carefully. This returns us to a state where mus/mash never loads DisplayPrefs.
2. We can remove DisplayConfigurator::SetInitialDisplayPower and always set |requested_power_state_| asynchronously. I have no idea what problems this may cause though.
3. We may be able to postpone the display_configurator initialization until Shell::OnLocalStatePrefServiceInitialized. It is already asyncronous in that DisplayConfigurator::RunPendingConfiguration invokes UpdateDisplayConfigurationTask which calls DisplayConfigurator::OnConfigured on completion, so this might "just work"?

I am going to look into #3, but I would welcome any thoughts / suggestions here.

The root cause is:

ChromeDisplayPowerServiceProviderDelegate::SetDisplayPower() -> ash::Shell::Get()->display_configurator()->SetDisplayPower()

That delegate probably belongs in ash, but it looks like ui::UserActivityDetector needs to be cleaned up first.

Cc: jamescook@chromium.org
I tried a few different things to fix this but they all feel pretty hacky.

I am going to revert the DIsplayPrefs related changes, we will have to circle back on this again with folks more familiar with this code involved.

Cc: sky@chromium.org
sky, is there a tracking bug for your work to load local state earlier?

Reverting SGTM. sky@ is working on moving local state load earlier, which might make it available during ash::Shell init, which might make this simpler to deal with.

Comment 9 by sky@chromium.org, Jan 12 2018

Yes there is. It's 800358.
Status: Fixed (was: Started)
Reverts are in

Sign in to add a comment