Issue metadata
Sign in to add a comment
|
ash: Fix ash shelf preference initialization |
||||||||||||||||||||||
Issue descriptionRun chrome --mash crashes right away. It may relate to PrefService. This is on ToT today. [5577:5584:0809/105821.187057:579040312620:INFO:service_process_launcher.cc(191)] Launched child process pid=5589, instance=, name=ui, user_id=faa4c086-94b2-41b4-9a1e-75fe1f367ab6 [5577:5588:0809/105821.189175:579040314311:INFO:service_process_launcher.cc(191)] Launched child process pid=5591, instance=, name=content_packaged_services, user_id=8e951a38-6154-4798-adb0-e64129fd8f5a [5577:5584:0809/105821.191790:579040316932:INFO:service_process_launcher.cc(191)] Launched child process pid=5592, instance=, name=ash, user_id=505C0EE9-3013-43C0-82B0-A84F50CF8D84 [5577:5584:0809/105821.194250:579040319388:INFO:service_process_launcher.cc(191)] Launched child process pid=5593, instance=, name=quick_launch, user_id=505C0EE9-3013-43C0-82B0-A84F50CF8D84 [5577:5584:0809/105821.705362:579040830509:INFO:service_process_launcher.cc(191)] Launched child process pid=5609, instance=, name=font_service, user_id=505C0EE9-3013-43C0-82B0-A84F50CF8D84 [5591:5591:0809/105821.768844:ERROR:zygote_host_impl_linux.cc(109)] SUID sandbox binary is missing. Won't be able to adjust OOM scores. [5592:5592:0809/105822.441968:579041567259:ERROR:shell_delegate_mus.cc(113)] Not implemented reached in virtual ash::GPUSupport *ash::ShellDelegateMus::CreateGPUSupport() [5592:5592:0809/105822.442560:579041567692:ERROR:shell_delegate_mus.cc(102)] Not implemented reached in virtual std::unique_ptr<PaletteDelegate> ash::ShellDelegateMus::CreatePaletteDelegate() [5592:5592:0809/105822.442622:579041567751:ERROR:shell_delegate_mus.cc(60)] Not implemented reached in virtual void ash::ShellDelegateMus::PreInit() [5592:5592:0809/105822.635371:579041760503:ERROR:layer_tree_host_impl.cc(2415)] Forcing zero-copy tile initialization as worker context is missing [5592:5592:0809/105822.652945:579041778076:ERROR:shell_delegate_mus.cc(50)] Not implemented reached in virtual bool ash::ShellDelegateMus::CanShowWindowForUser(aura::Window *) const [5593:5593:0809/105822.692727:579041818058:ERROR:layer_tree_host_impl.cc(2415)] Forcing zero-copy tile initialization as worker context is missing Received signal 11 SEGV_MAPERR 000000000020 #0 0x7f2ab1a27d7c base::debug::StackTrace::StackTrace() #1 0x7f2ab1a27871 base::debug::(anonymous namespace)::StackDumpSignalHandler() #2 0x7f2ab1ba5330 <unknown> #3 0x7f2ab031ff33 PrefService::Preference::HasUserSetting() #4 0x559904b96471 [5592:5592:0809/105823.290329:579042415460:ERROR:shell_delegate_mus.cc(81)] Not implemented reached in virtual void ash::ShellDelegateMus::ShelfInit() ChromeLauncherPrefsObserver::CreateIfNecessary() #5 0x559904b9d74d ChromeLauncherController::Init() #6 0x559904bb1005 ChromeBrowserMainExtraPartsAsh::PostProfileInit() #7 0x5599038c5a4a ChromeBrowserMainParts::PostProfileInit() #8 0x5599038c66bb ChromeBrowserMainPartsLinux::PostProfileInit() #9 0x5599033dc81f chromeos::ChromeBrowserMainPartsChromeos::PostProfileInit() #10 0x5599038c4f7b ChromeBrowserMainParts::PreMainMessageLoopRunImpl() #11 0x5599038c434d ChromeBrowserMainParts::PreMainMessageLoopRun() #12 0x5599033dba02 chromeos::ChromeBrowserMainPartsChromeos::PreMainMessageLoopRun() #13 0x7f2aaeff4d91 content::BrowserMainLoop::PreMainMessageLoopRun() #14 0x7f2aaf3f4fd7 content::StartupTaskRunner::RunAllTasksNow() #15 0x7f2aaeff321b content::BrowserMainLoop::CreateStartupTasks() #16 0x7f2aaeff7919 content::BrowserMainRunnerImpl::Initialize() #17 0x7f2aaeff0817 content::BrowserMain() #18 0x7f2aaf7f6a88 content::ContentMainRunnerImpl::Run() #19 0x7f2ab1f6bcb2 service_manager::Main() #20 0x7f2aaf7f5564 content::ContentMain() #21 0x559902f54928 ChromeMain #22 0x7f2aa76ebf45 __libc_start_main #23 0x559902f54764 <unknown> r8: 0000000000000000 r9: 0000000000000015 r10: 0000000000000060 r11: 00007f2aa7854110 r12: 00007fff8ab14881 r13: 0000000000000015 r14: 00007fff8ab148f8 r15: 0000341344d542c0 di: 0000000000000000 si: 0000000000000000 bp: 00007fff8ab148e0 bx: 00003413452e1420 dx: 0000341344cbb440 ax: 0000000000000000 cx: 0000000044d52001 sp: 00007fff8ab14878 ip: 00007f2ab031ff33 efl: 0000000000010206 cgf: 0000000000000033 erf: 0000000000000004 trp: 000000000000000e msk: 0000000000000000 cr2: 0000000000000020 [end of stack trace] Calling _exit(1). Core file will not be generated. [5577:5577:0809/105823.376812:579042501949:ERROR:chrome_main_delegate.cc(1186)] Main process exiting because service content_packaged_services quit unexpectedly. [5592:5592:0809/105823.377462:579042502595:ERROR:shell_delegate_mus.cc(64)] Not implemented reached in virtual void ash::ShellDelegateMus::PreShutdown() [5592:5592:0809/105823.388766:579042513901:ERROR:shell_delegate_mus.cc(85)] Not implemented reached in virtual void ash::ShellDelegateMus::ShelfShutdown()
,
Aug 9 2017
,
Aug 9 2017
msw recently changed chrome launcher controller, maybe his code?
,
Aug 9 2017
Yes! I'll have a fix shortly, we can revert my CL if we want the quickest fix: https://chromium-review.googlesource.com/c/602737
,
Aug 9 2017
Workaround fix up for review: https://chromium-review.googlesource.com/c/608613
,
Aug 9 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c95ebb5dfc53040866c9e5a4579cde2e479cbb3d commit c95ebb5dfc53040866c9e5a4579cde2e479cbb3d Author: Michael Wasserman <msw@chromium.org> Date: Wed Aug 09 16:31:58 2017 mash: Workaround crash checking unregistered preference. Bug: 753823 Change-Id: If5b6ac0c52b0a69b0111f689fdbb3479dfe85106 Reviewed-on: https://chromium-review.googlesource.com/608613 Reviewed-by: James Cook <jamescook@chromium.org> Commit-Queue: Michael Wasserman <msw@chromium.org> Cr-Commit-Position: refs/heads/master@{#493015} [modify] https://crrev.com/c95ebb5dfc53040866c9e5a4579cde2e479cbb3d/chrome/browser/ui/ash/chrome_launcher_prefs.cc
,
Aug 9 2017
The crash is fixed, re-targeting to fix ChromeLauncherPrefsObserver in mash. (it should move to ash or wait for the ash prefs registration to propagate)
,
Aug 9 2017
,
Aug 9 2017
,
Aug 9 2017
,
Oct 16 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7e440443c0dd5d86061c4084e0964605c8724c2b commit 7e440443c0dd5d86061c4084e0964605c8724c2b Author: Mike Wasserman <msw@chromium.org> Date: Mon Oct 16 16:59:11 2017 ash: Make local shelf pref init more reliable on first sign-in. Nix ChromeLauncherPrefsObserver; it usually wasn't created, afaict. Ash prefs were usually registered with chrome too late in local tests. (they are available on first sign-in for some unknown timing reason) Inline behavior in ChromeLauncherController::OnIsSyncingChanged. Wait for OnIsSyncingChanged to check for pref registration and init. Timing still isn't guaranteed, but this moves the needle in our favor. TODO: Init prefs in Ash for guaranteed ordering - crbug.com/774657 Bug: 753823,774657 Change-Id: Ia9a0e4a8a512d50a414b331f39ad72194d1357f6 Reviewed-on: https://chromium-review.googlesource.com/717476 Commit-Queue: Michael Wasserman <msw@chromium.org> Reviewed-by: James Cook <jamescook@chromium.org> Cr-Commit-Position: refs/heads/master@{#509079} [modify] https://crrev.com/7e440443c0dd5d86061c4084e0964605c8724c2b/ash/shelf/shelf_controller.cc [modify] https://crrev.com/7e440443c0dd5d86061c4084e0964605c8724c2b/chrome/browser/ui/ash/chrome_launcher_prefs.cc [modify] https://crrev.com/7e440443c0dd5d86061c4084e0964605c8724c2b/chrome/browser/ui/ash/chrome_launcher_prefs.h [modify] https://crrev.com/7e440443c0dd5d86061c4084e0964605c8724c2b/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc [modify] https://crrev.com/7e440443c0dd5d86061c4084e0964605c8724c2b/chrome/browser/ui/ash/launcher/chrome_launcher_controller.h
,
Oct 16 2017
Fixing this further is blocked on Issue 774657. Here's an updated summary of the bug: Ash owns and registers shelf preferences, and Chrome sees those as foreign prefs (eventually). Chrome inits local shelf prefs from synced values when a user signs-in to a device for the first time. (Ash can't do it because we haven't plumbed OnIsSyncingChanged to the preferences service clients) This is problematic, because Chrome may not see the foreign pref registration before syncing begins. (rare in my local testing, but we should still avoid timing issues and move the pref init to Ash) See the comments around InitLocalPref in chrome_launcher_prefs.[h|cc]: // Init a local pref from a synced pref, if the local pref has no user setting. // This is used to init shelf alignment and auto-hide on the first user sync. // The goal is to apply the last elected shelf alignment and auto-hide values // when a user signs in to a new device for the first time. Otherwise, shelf // properties are persisted per-display/device. The local prefs are initialized // with synced (or default) values when when syncing begins, to avoid syncing // shelf prefs across devices after the very start of the user's first session. void InitLocalPref(PrefService* prefs, const char* local, const char* synced); // Ash's prefs *should* have been propagated to Chrome by now, but maybe not. // This belongs in Ash, but it can't observe syncing changes: crbug.com/774657
,
Nov 27 2017
,
Apr 19 2018
,
May 30 2018
,
Dec 29
|
|||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||
Comment 1 by thanhph@chromium.org
, Aug 9 2017