New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 836311 link

Starred by 1 user

Issue metadata

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



Sign in to add a comment

Login crash in desktopui_MashLogin, ash service starting twice

Project Member Reported by jamescook@chromium.org, Apr 24 2018

Issue description

This report is automatically generated to track the following Failure:
Test: desktopui_MashLogin.
Suite: bvt-perbuild.
Chrome Version: 68.0.3404.0.
Build: eve-arcnext-release/R68-10611.0.0.

Reason:
Unhandled BrowserGoneException: [Errno 111] Connection refused.
build artifacts:
https://storage.cloud.google.com/?arg=chromeos-image-archive/eve-arcnext-release/R68-10611.0.0.
results log: http://ubercautotest.corp.google.com/tko/retrieve_logs.cgi?job=/results/194470035-chromeos-test/chromeos6-row3-rack11-host9/debug/.

3 different crashes:
 0  chrome!ash::WindowManagerService::OnStart() [bluez_dbus_manager.cc : 227 + 0x1]
 0  chrome!ui::DrmThreadProxy::AddBindingDrmDevice(mojo::InterfaceRequest<ui::ozone::mojom::DrmDevice>) [thread.h : 233 + 0x0]
 0  chrome!ash::mojo_interface_factory::(anonymous namespace)::BindAshDisplayControllerRequestOnMainThread(mojo::InterfaceRequest<ash::mojom::AshDisplayController>) [shell.cc : 281 + 0x1]

The first is a CHECK failure that bluez is being initialized twice.

I can repro a crash locally with mash. It happens during login (after the signin screen).

/var/log/ui shows this:
[4478:4478:0424/093958.119383:ERROR:service_manager_context.cc(389)] Terminating because service 'ui' quit unexpectedly.

(However, "ash" and "ui" are the same process. It's possible the name is wrong due to startup thread race.)

Adding logging reveals that something is trying to start the ash service again in the same process as before, so the Bluetooth code CHECK-fails saying its singleton is already initialized.

rockot is surprised that the ui service and the ash service are not singleton services:
https://cs.chromium.org/chromium/src/services/ui/manifest.json?rcl=473c6136be0588ad78734b86c325a29a30f6cd60&l=84

Perhaps this only happens on eve due to the multidevice_setup code.

Investigating...

 

Comment 1 by roc...@chromium.org, Apr 24 2018

To be fair, ui service being all_users instead of singleton is not very
surprising. We didn't used to have "singleton" and in practice all_users is
probably sufficient.

What is really surprising is that ash was neither.
Cc: r...@chromium.org
Re MultiDeviceSetup: It's unlikely that this is the cause of the issue, since this code is not released yet and does not even get launched unless you enable this flag (disabled by default):
https://cs.chromium.org/chromium/src/chrome/browser/profiles/profile_impl.cc?q=features::kEnableUnifiedMultiDeviceSetup

I doubt that you have enabled the flag :P


That being said, Eve and Minnie are the only two devices which have launched Instant Tethering by default. Since Instant Tethering is one of the few existing Bluetooth features, perhaps this could be related to the BlueZ failure. Can you try turning off mobile data (settings --> network --> mobile data) and seeing if you can still reproduce this?
It's due to ash not being a singleton service. I have a fix out for review. https://chromium-review.googlesource.com/c/chromium/src/+/1026202

(For completeness: Settings > Network > Mobile Data does not appear for me, either at the login screen or inside a non-mash session. I can't login with mash, so I can't be sure if it shows up there or not. I tried turning off Bluetooth both at login screen and in the user session, but I still get crashes with mash. Switching ash to a singleton service fixes things, though, and ash was clearly configured wrong before, so I'm not particularly concerned.)

Project Member

Comment 4 by bugdroid1@chromium.org, Apr 24 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bab49a45000e82a20c28508bc931280d64c92ccf

commit bab49a45000e82a20c28508bc931280d64c92ccf
Author: James Cook <jamescook@chromium.org>
Date: Tue Apr 24 19:44:24 2018

cros: Fix login crash under mash due to multiple ash instances

The ash service was being started twice because it was not marked as
a "singleton" service. Service connections with different user ids
could result in the service starting twice in the same process.

This caused CHECK failures in bluez::BluezDBusManager::Initialize
and desktopui_MashLogin to fail in the autotest lab.

Fix by marking the ash and ui services as singlton services, which
they should have been in the first place.

Bug:  836311 
Test: existing autotest desktopui_MashLogin
Change-Id: I066692b19bb5d89c75e46c79675024740f42f844
Reviewed-on: https://chromium-review.googlesource.com/1026202
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: James Cook <jamescook@chromium.org>
Cr-Commit-Position: refs/heads/master@{#553235}
[modify] https://crrev.com/bab49a45000e82a20c28508bc931280d64c92ccf/ash/manifest.json
[modify] https://crrev.com/bab49a45000e82a20c28508bc931280d64c92ccf/services/ui/manifest.json

Status: Fixed (was: Started)

Sign in to add a comment