mash: Startup crash in OzonePlatformGbm::Create / DrmThreadProxy::AddBinding |
|||||||
Issue descriptionFound in autotest lab on peach_pit: M-60 Platform 9511.0.0 Chrome 60.0.3084.0 (= r468182 from last Friday) Build artifacts: https://pantheon.corp.google.com/storage/browser/chromeos-releases/canary-channel/peach-pit/9511.0.0/?pli=1 Failure: https://wmatrix.googleplex.com/testrun/unfiltered?test_ids=473915717 From logs, it looks like chrome --mash started and got to OOBE OK, but then the test restarted chrome and tried to log in, and that crashed. This is a flaky problem. Most of the time the test passes. 0 chrome!std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string() [task_runner.cc : 47 + 0x0] 1 chrome!ui::DrmThreadProxy::AddBinding(mojo::InterfaceRequest<ui::ozone::mojom::DeviceCursor>) [drm_thread_proxy.cc : 67 + 0x9] 2 chrome!non-virtual thunk to ui::(anonymous namespace)::OzonePlatformGbm::Create(service_manager::Identity const&, mojo::InterfaceRequest<ui::ozone::mojom::DeviceCursor>) [ozone_platform_gbm.cc : 118 + 0x3] 3 chrome!service_manager::internal::InterfaceFactoryBinder<ash::autoclick::mojom::AutoclickController>::BindInterface(service_manager::Identity const&, std::string const&, mojo::ScopedHandleBase<mojo::MessagePipeHandle>) [interface_factory_binder.h : 27 + 0x1] 4 chrome!service_manager::BinderRegistry::BindInterface(service_manager::Identity const&, std::string const&, mojo::ScopedHandleBase<mojo::MessagePipeHandle>) [binder_registry.cc : 40 + 0x3] 5 chrome!ui::Service::OnBindInterface(service_manager::ServiceInfo const&, std::string const&, mojo::ScopedHandleBase<mojo::MessagePipeHandle>) [service.cc : 230 + 0x3] 6 chrome!service_manager::ServiceContext::OnBindInterface(service_manager::ServiceInfo const&, std::string const&, mojo::ScopedHandleBase<mojo::MessagePipeHandle>, base::Callback<void (), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&) [service_context.cc : 92 + 0x3] 7 chrome!service_manager::mojom::ServiceStubDispatch::AcceptWithResponder(service_manager::mojom::Service*, mojo::Message*, std::unique_ptr<mojo::MessageReceiverWithStatus, std::default_delete<mojo::MessageReceiverWithStatus> >) [service.mojom.cc : 467 + 0x7] 8 chrome!service_manager::mojom::ServiceStub<mojo::RawPtrImplRefTraits<service_manager::mojom::Service> >::AcceptWithResponder(mojo::Message*, std::unique_ptr<mojo::MessageReceiverWithStatus, std::default_delete<mojo::MessageReceiverWithStatus> >) [service.mojom.h : 146 + 0x3] 9 chrome!mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) [interface_endpoint_client.cc : 383 + 0x1] 10 chrome!mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::Message*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SingleThreadTaskRunner*) [multiplex_router.cc : 875 + 0x7] 11 chrome!mojo::internal::MultiplexRouter::Accept(mojo::Message*) [multiplex_router.cc : 607 + 0x9] 12 chrome!mojo::Connector::ReadAllAvailableMessages() [connector.cc : 387 + 0x9] 13 chrome!mojo::SimpleWatcher::OnHandleReady(int, unsigned int) [callback.h : 80 + 0x1] 14 chrome!base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) [callback.h : 91 + 0x1] 15 chrome!base::MessageLoop::RunTask(base::PendingTask*) [message_loop.cc : 423 + 0x9] 16 chrome!base::MessageLoop::DoWork() [message_loop.cc : 434 + 0x7] 17 chrome!base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) [message_pump_libevent.cc : 219 + 0x7] 18 chrome!base::RunLoop::Run() [run_loop.cc : 37 + 0x3] 19 chrome!base::internal::Invoker<base::internal::BindState<service_manager::(anonymous namespace)::RunService(service_manager::MainDelegate*)::$_0, service_manager::MainDelegate*, int*>, void (mojo::InterfaceRequest<service_manager::mojom::Service>)>::Run(base::internal::BindStateBase*, mojo::InterfaceRequest<service_manager::mojom::Service>&&) [main.cc : 313 + 0x5] 20 chrome!service_manager::RunStandaloneService(base::Callback<void (mojo::InterfaceRequest<service_manager::mojom::Service>), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&) [callback.h : 80 + 0x1] 21 chrome!service_manager::Main(service_manager::MainParams const&) [main.cc : 285 + 0x3] 22 chrome!content::ContentMain(content::ContentMainParams const&) [content_main.cc : 19 + 0x5] 23 chrome!ChromeMain [chrome_main.cc : 111 + 0x3] 25 chrome!_start + 0x32 26 chrome!__libc_csu_init [elf-init.c : 87 + 0x11] kyle, is this something you can look at? sadrul? rob?
,
May 8 2017
Ping? This is blocking putting our autotest back in the lab for peach_pit.
,
May 8 2017
I have just put up https://codereview.chromium.org/2870653002/. I expect we will continue to have issues related to the gpu code until we have the gpu process split, unfortunately.
,
May 8 2017
Is there any way to write tests for these sorts of issues that can run on the chrome waterfall?
,
May 8 2017
The issue is that Ozone DRM does a lot more than Ozone X11 or Ozone headless, which includes communication between threads and processes. We would either need chrome trybots that can run Ozone DRM configuration (which is a work in progress right now) or would need to mock out all of the actually system calls for Ozone DRM.
,
May 9 2017
This is now expected to be fixed.
,
Aug 1 2017
,
Jan 22 2018
,
Feb 26 2018
|
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by rjkroege@chromium.org
, May 2 2017Owner: sadrul@chromium.org