mash: Startup crash on devices with ARC++ support |
||||
Issue description
mash: Startup crash on devices with ARC++ support
(1) Build chrome and mash on ToT @ #498123 for an ARC++ device (eg. cyan)
"Simple Chrome" instructions: go/simplechrome
(2) Deploy the build to the device, add --mash commandline flag.
"Getting Started with mustash/mash development" instructions: go/mustash-intro
(3) Try to start chrome
Expected: Chrome starts and runs.
Actual: Crash! Stack below:
[9941:9941:0831/134158.310971:FATAL:shell.cc(290)] Check failed: HasInstance().
#0 0x565dcb4da73c base::debug::StackTrace::StackTrace()
#1 0x565dcb4efd1e logging::LogMessage::~LogMessage()
#2 0x565dcd3487bf ash::Shell::GetPrimaryRootWindow()
#3 0x565dca8afc97 exo::wayland::(anonymous namespace)::vsync_feedback_get_vsync_timing()
#4 0x7d98fd5efe24 ffi_call_unix64
#5 0x7d98fd5ef53b ffi_call
#6 0x565dcd952cd8 wl_closure_invoke
#7 0x565dcd95067b wl_client_connection_data
#8 0x565dcd94fa83 wl_event_loop_dispatch
#9 0x565dca8ab859 exo::wayland::Server::Dispatch()
#10 0x565dce5a8cd4 ExoParts::WaylandWatcher::OnFileCanReadWithoutBlocking()
#11 0x565dcb4f77f9 base::MessagePumpLibevent::OnLibeventNotification()
#12 0x565dcb5820fc event_base_loop
#13 0x565dcb4f7b25 base::MessagePumpLibevent::Run()
#14 0x565dcb518b16 base::RunLoop::Run()
#15 0x565dcb1a7018 ChromeBrowserMainParts::MainMessageLoopRun()
#16 0x565dc9dd81c4 content::BrowserMainLoop::RunMainMessageLoopParts()
#17 0x565dc9ddac12 content::BrowserMainRunnerImpl::Run()
#18 0x565dc9dd3a0c content::BrowserMain()
#19 0x565dcb17af1c content::ContentMainRunnerImpl::Run()
#20 0x565dcb19c8af service_manager::Main()
#21 0x565dcb179dd1 content::ContentMain()
#22 0x565dc974e8f5 ChromeMain
#23 0x7d98fcf4b736 __libc_start_main
#24 0x565dc974e6d9 _start
I think this is ARC++/exo specific as per the callstack #3.
This is blocking my work, so I'm going to try to fix it...
,
Aug 31 2017
I can work around the first startup crash by stubbing out functionality. See patch set 1 at https://chromium-review.googlesource.com/646846 But then I hit a second, delayed startup crash: Received signal 11 SEGV_MAPERR 0000000000f0 #0 0x5b83b931976c base::debug::StackTrace::StackTrace() #1 0x5b83b93192c1 base::debug::(anonymous namespace)::StackDumpSignalHandler() #2 0x7494b94d82e0 <unknown> #3 0x5b83b7edae04 content::TextInputManager::AddObserver() #4 0x5b83b83a30e3 arc::ArcWallpaperService::OnInstanceReady() #5 0x5b83bb708be0 arc::InstanceHolder<>::SetInstance() #6 0x5b83b9e61f95 mojo::internal::InterfacePtrStateBase::OnQueryVersion() #7 0x5b83b9e6d29a mojo::internal::(anonymous namespace)::RunVersionCallback() #8 0x5b83b9e6d692 _ZN4base8internal7InvokerINS0_9BindStateIPFvRKNS_17RepeatingCallbackIFvjEEEN4mojo9StructPtrINS8_17interface_control24RunResponseMessageParamsEEEEJS5_EEEFvSC_EE3RunEPNS0_13BindStateBaseEOSC_ #9 0x5b83b9e6d602 mojo::internal::(anonymous namespace)::RunResponseForwardToCallback::Accept() #10 0x5b83b9e60b19 mojo::InterfaceEndpointClient::HandleValidatedMessage() #11 0x5b83b9e66d08 mojo::internal::MultiplexRouter::ProcessIncomingMessage() #12 0x5b83b9e665fd mojo::internal::MultiplexRouter::Accept() #13 0x5b83b9e5fcd2 mojo::Connector::ReadSingleMessage() #14 0x5b83b9e60451 mojo::Connector::ReadAllAvailableMessages() #15 0x5b83b79faa92 mojo::SimpleWatcher::DiscardReadyState() #16 0x5b83b9e6f4c4 mojo::SimpleWatcher::OnHandleReady() #17 0x5b83b9319f86 base::debug::TaskAnnotator::RunTask() #18 0x5b83b93349ee base::MessageLoop::RunTask() #19 0x5b83b93351ea base::MessageLoop::DoWork() #20 0x5b83b9336b99 base::MessagePumpLibevent::Run() #21 0x5b83b9357b46 base::RunLoop::Run() #22 0x5b83b8fe6048 ChromeBrowserMainParts::MainMessageLoopRun() #23 0x5b83b7c171c4 content::BrowserMainLoop::RunMainMessageLoopParts() #24 0x5b83b7c19c12 content::BrowserMainRunnerImpl::Run() #25 0x5b83b7c12a0c content::BrowserMain() #26 0x5b83b8fb9f4c content::ContentMainRunnerImpl::Run() #27 0x5b83b8fdb8df service_manager::Main() #28 0x5b83b8fb8e01 content::ContentMain() #29 0x5b83b758d8f5 ChromeMain #30 0x7494b8350736 __libc_start_main #31 0x5b83b758d6d9 _start r8: 0000000000000000 r9: 0000000000000000 r10: 0000000000004000 r11: 0000000000000000 r12: 00005b83b78f9a90 r13: 000003f19ea37000 r14: 0000000000000000 r15: 000003f19cbe3288 di: 0000000000000000 si: 000003f19cbe3288 bp: 00007ffeb944c880 bx: 000003f19cbe3288 dx: 00000000000009d9 ax: 2f3976ec9efa1f00 cx: 000000000000001d sp: 00007ffeb944c850 ip: 00005b83b7edae04 efl: 0000000000010206 cgf: 0000000000000033 erf: 0000000000000004 trp: 000000000000000e msk: 0000000000000000 cr2: 00000000000000f0 [end of stack trace] Working around that crash, as in Patch Set 2, yields yet another crash: Received signal 11 SEGV_MAPERR 000000000010 #0 0x61f49ae8676c base::debug::StackTrace::StackTrace() #1 0x61f49ae862c1 base::debug::(anonymous namespace)::StackDumpSignalHandler() #2 0x76acb48fb2e0 <unknown> #3 0x61f49917ccc9 base::ObserverListBase<>::RemoveObserver() #4 0x61f49a25bd6a exo::wayland::(anonymous namespace)::DestroyUserData<>() #5 0x61f49d2fc577 destroy_resource #6 0x61f49d2ffd2c wl_map_for_each #7 0x61f49d2fc5ed wl_client_destroy #8 0x61f49d2fc080 wl_client_connection_data #9 0x61f49d2fb6d3 wl_event_loop_dispatch #10 0x61f49a257859 exo::wayland::Server::Dispatch() #11 0x61f49df54924 ExoParts::WaylandWatcher::OnFileCanReadWithoutBlocking() #12 0x61f49aea3829 base::MessagePumpLibevent::OnLibeventNotification() #13 0x61f49af2e12c event_base_loop #14 0x61f49aea3a4e base::MessagePumpLibevent::Run() #15 0x61f49aec4b46 base::RunLoop::Run() #16 0x61f49ab53048 ChromeBrowserMainParts::MainMessageLoopRun() #17 0x61f4997841c4 content::BrowserMainLoop::RunMainMessageLoopParts() #18 0x61f499786c12 content::BrowserMainRunnerImpl::Run() #19 0x61f49977fa0c content::BrowserMain() #20 0x61f49ab26f4c content::ContentMainRunnerImpl::Run() #21 0x61f49ab488df service_manager::Main() #22 0x61f49ab25e01 content::ContentMain() #23 0x61f4990fa8f5 ChromeMain #24 0x76acb3773736 __libc_start_main #25 0x61f4990fa6d9 _start r8: 0000000000000000 r9: 000076acb3893620 r10: 000011286b8a90d0 r11: 000076acb38cf620 r12: 000011286c9c00b0 r13: 000011286c980110 r14: 0000000000000000 r15: 000011286c71f390 di: 0000000000000008 si: 000011286c71f390 bp: 00007fffd250d4b0 bx: 0000000000000008 dx: 000000000000001b ax: 000061f4a0dab3b8 cx: 0000000000000000 sp: 00007fffd250d4a0 ip: 000061f49917ccc9 efl: 0000000000010202 cgf: 0000000000000033 erf: 0000000000000004 trp: 000000000000000e msk: 0000000000000000 cr2: 0000000000000010 [end of stack trace] Working on it...
,
Aug 31 2017
More crashes, stacks below, latest patch set seems to workaround these issues. #0 0x5cf0fb20376c base::debug::StackTrace::StackTrace() #1 0x5cf0fb218d4e logging::LogMessage::~LogMessage() #2 0x5cf0fd071664 ash::Shell::Get() #3 0x5cf0fd5e1485 arc::ArcPowerBridge::OnInstanceReady() #4 0x5cf0fd5f2be0 arc::InstanceHolder<>::SetInstance() #5 0x5cf0fbd4bf95 mojo::internal::InterfacePtrStateBase::OnQueryVersion() #6 0x5cf0fbd5729a mojo::internal::(anonymous namespace)::RunVersionCallback() #7 0x5cf0fbd57692 _ZN4base8internal7InvokerINS0_9BindStateIPFvRKNS_17RepeatingCallbackIFvjEEEN4mojo9StructPtrINS8_17interface_control24RunResponseMessageParamsEEEEJS5_EEEFvSC_EE3RunEPNS0_13BindStateBaseEOSC_ #8 0x5cf0fbd57602 mojo::internal::(anonymous namespace)::RunResponseForwardToCallback::Accept() #9 0x5cf0fbd4ab19 mojo::InterfaceEndpointClient::HandleValidatedMessage() #10 0x5cf0fbd50d08 mojo::internal::MultiplexRouter::ProcessIncomingMessage() #11 0x5cf0fbd505fd mojo::internal::MultiplexRouter::Accept() #12 0x5cf0fbd49cd2 mojo::Connector::ReadSingleMessage() #13 0x5cf0fbd4a451 mojo::Connector::ReadAllAvailableMessages() #14 0x5cf0f98e4a92 mojo::SimpleWatcher::DiscardReadyState() #15 0x5cf0fbd594c4 mojo::SimpleWatcher::OnHandleReady() #16 0x5cf0fb203f86 base::debug::TaskAnnotator::RunTask() #17 0x5cf0fb21e9ee base::MessageLoop::RunTask() #18 0x5cf0fb21f1ea base::MessageLoop::DoWork() #19 0x5cf0fb220b99 base::MessagePumpLibevent::Run() #20 0x5cf0fb241b46 base::RunLoop::Run() #21 0x5cf0faed0048 ChromeBrowserMainParts::MainMessageLoopRun() #22 0x5cf0f9b011c4 content::BrowserMainLoop::RunMainMessageLoopParts() #23 0x5cf0f9b03c12 content::BrowserMainRunnerImpl::Run() #24 0x5cf0f9afca0c content::BrowserMain() #25 0x5cf0faea3f4c content::ContentMainRunnerImpl::Run() #26 0x5cf0faec58df service_manager::Main() #27 0x5cf0faea2e01 content::ContentMain() #28 0x5cf0f94778f5 ChromeMain #29 0x719a9ded3736 __libc_start_main #30 0x5cf0f94776d9 _start #0 0x5a777a82776c base::debug::StackTrace::StackTrace() #1 0x5a777a83cd4e logging::LogMessage::~LogMessage() #2 0x5a777c695664 ash::Shell::Get() #3 0x5a777cbfa047 arc::ArcIntentHelperBridge::OnInstanceReady() #4 0x5a777cc16bf0 arc::InstanceHolder<>::SetInstance() #5 0x5a777b36ff95 mojo::internal::InterfacePtrStateBase::OnQueryVersion() #6 0x5a777b37b29a mojo::internal::(anonymous namespace)::RunVersionCallback() #7 0x5a777b37b692 _ZN4base8internal7InvokerINS0_9BindStateIPFvRKNS_17RepeatingCallbackIFvjEEEN4mojo9StructPtrINS8_17interface_control24RunResponseMessageParamsEEEEJS5_EEEFvSC_EE3RunEPNS0_13BindStateBaseEOSC_ #8 0x5a777b37b602 mojo::internal::(anonymous namespace)::RunResponseForwardToCallback::Accept() #9 0x5a777b36eb19 mojo::InterfaceEndpointClient::HandleValidatedMessage() #10 0x5a777b374d08 mojo::internal::MultiplexRouter::ProcessIncomingMessage() #11 0x5a777b3745fd mojo::internal::MultiplexRouter::Accept() #12 0x5a777b36dcd2 mojo::Connector::ReadSingleMessage() #13 0x5a777b36e451 mojo::Connector::ReadAllAvailableMessages() #14 0x5a7778f08a92 mojo::SimpleWatcher::DiscardReadyState() #15 0x5a777b37d4c4 mojo::SimpleWatcher::OnHandleReady() #16 0x5a777a827f86 base::debug::TaskAnnotator::RunTask() #17 0x5a777a8429ee base::MessageLoop::RunTask() #18 0x5a777a8431ea base::MessageLoop::DoWork() #19 0x5a777a844b99 base::MessagePumpLibevent::Run() #20 0x5a777a865b46 base::RunLoop::Run() #21 0x5a777a4f4048 ChromeBrowserMainParts::MainMessageLoopRun() #22 0x5a77791251c4 content::BrowserMainLoop::RunMainMessageLoopParts() #23 0x5a7779127c12 content::BrowserMainRunnerImpl::Run() #24 0x5a7779120a0c content::BrowserMain() #25 0x5a777a4c7f4c content::ContentMainRunnerImpl::Run() #26 0x5a777a4e98df service_manager::Main() #27 0x5a777a4c6e01 content::ContentMain() #28 0x5a7778a9b8f5 ChromeMain #29 0x7ea3f3134736 __libc_start_main #30 0x5a7778a9b6d9 _start
,
Aug 31 2017
Can we get the startup sequence correct instead? Adding if-statements to avoid startup sequence errors doesn't seem right or am I missing something?
,
Aug 31 2017
I'm not sure this is a sequencing issue; the code in question seems to be executing in Chrome's process, which is separate from Ash's process in the mash config (and there won't ever be an ash::Shell instance available to chrome's process). If you have a solution that works for --mash, I'd gladly accept that over these temporary workarounds.
,
Sep 5 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b92dda69a28de907875e6645ab0561a5d5c83e90 commit b92dda69a28de907875e6645ab0561a5d5c83e90 Author: Mike Wasserman <msw@chromium.org> Date: Tue Sep 05 18:14:19 2017 mash: Workaround arc and exo startup crashes. Move exo VSync observation to WMHelper with Ash impl, mus no-op. Stub out other crashing code, see the details in the bug. Bug: 761148 Change-Id: I95f8c4d452a8857d9763f1f468981e731a3ce96e Reviewed-on: https://chromium-review.googlesource.com/646846 Commit-Queue: Michael Wasserman <msw@chromium.org> Reviewed-by: David Reveman <reveman@chromium.org> Reviewed-by: Yusuke Sato <yusukes@chromium.org> Cr-Commit-Position: refs/heads/master@{#499678} [modify] https://crrev.com/b92dda69a28de907875e6645ab0561a5d5c83e90/chrome/browser/chromeos/arc/wallpaper/arc_wallpaper_service.cc [modify] https://crrev.com/b92dda69a28de907875e6645ab0561a5d5c83e90/components/arc/intent_helper/arc_intent_helper_bridge.cc [modify] https://crrev.com/b92dda69a28de907875e6645ab0561a5d5c83e90/components/arc/power/arc_power_bridge.cc [modify] https://crrev.com/b92dda69a28de907875e6645ab0561a5d5c83e90/components/exo/wayland/server.cc [modify] https://crrev.com/b92dda69a28de907875e6645ab0561a5d5c83e90/components/exo/wm_helper.cc [modify] https://crrev.com/b92dda69a28de907875e6645ab0561a5d5c83e90/components/exo/wm_helper.h [modify] https://crrev.com/b92dda69a28de907875e6645ab0561a5d5c83e90/components/exo/wm_helper_ash.cc [modify] https://crrev.com/b92dda69a28de907875e6645ab0561a5d5c83e90/components/exo/wm_helper_ash.h
,
Sep 5 2017
,
Jan 22 2018
,
Jan 23 2018
|
||||
►
Sign in to add a comment |
||||
Comment 1 by msw@chromium.org
, Aug 31 2017