New issue
Advanced search Search tips

Issue 717257 link

Starred by 1 user

Issue metadata

Status: Archived
Owner:
Closed: May 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

mash: Startup crash in OzonePlatformGbm::Create / DrmThreadProxy::AddBinding

Project Member Reported by jamescook@chromium.org, May 1 2017

Issue description

Found 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?

 
Cc: kylec...@chromium.org
Owner: sadrul@chromium.org
ah. this. I think this is race with cursor thread startup. sadrul@ let's discuss.
Cc: sky@chromium.org
Ping? This is blocking putting our autotest back in the lab for peach_pit.

Status: Started (was: Assigned)
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.
Is there any way to write tests for these sorts of issues that can run on the chrome waterfall?
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.
Status: Fixed (was: Started)
This is now expected to be fixed.

Comment 7 by dchan@chromium.org, Aug 1 2017

Labels: VerifyIn-61

Comment 8 by dchan@chromium.org, Jan 22 2018

Status: Archived (was: Fixed)
Components: -Internals>MUS Internals>Services>WindowService

Sign in to add a comment