New issue
Advanced search Search tips

Issue 866263 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 26
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

ui.MashLogin fails with OzonePlatformGbm::InitializeGPU abort: "Mojo single-process mode requires a HostDrmDevice."

Project Member Reported by derat@chromium.org, Jul 21

Issue description

The ui.MashLogin Tast test (which just passes --enable-features=Mash when starting Chrome) is failing frequently in the lab due to a Chrome crash, e.g. http://stainless/browse/chromeos-autotest-results/219054760-chromeos-test/:

2018/07/20 08:09:09 Started test ui.MashLogin
2018/07/20 08:09:09 [08:09:08.624] Restarting ui job
2018/07/20 08:09:12 [08:09:11.176] Waiting for org.chromium.SessionManager D-Bus service
2018/07/20 08:09:12 [08:09:11.182] Asking session_manager to enable Chrome testing
2018/07/20 08:09:12 [08:09:11.185] Waiting for Chrome to write its debugging port to /home/chronos/DevToolsActivePort
2018/07/20 08:09:15 [08:09:14.293] Removing cryptohome for testuser@gmail.com
2018/07/20 08:09:15 [08:09:14.406] Finding OOBE DevTools target
2018/07/20 08:10:09 [08:10:08.632] Error at mash_login.go:35: Chrome login failed: OOBE target not found: browser process 7265 replaced by 7472

---

Crash reason:  SIGILL
Crash address: 0x0
Process uptime: not available

Thread 0 (crashed)
 0  chrome!ui::(anonymous namespace)::OzonePlatformGbm::InitializeGPU(ui::OzonePlatform::InitParams const&) [ozone_platform_gbm.cc : 270 + 0x1]
    rax = 0x00000b87cfd80030   rdx = 0x0000000000000001
    rcx = 0x000059976dfc36c0   rbx = 0x00000b87cfd80000
    rsi = 0x0000000000000001   rdi = 0x0000000000000000
    rbp = 0x00007948a9a3e5e0   rsp = 0x00007948a9a3e5b0
     r8 = 0x0000000000000000    r9 = 0x0000000000000000
    r10 = 0x000059976d278d11   r11 = 0x00007948afa2d1e0
    r12 = 0x0000000000000000   r13 = 0x00000b87cfcadb80
    r14 = 0x00000b87cfcb8e00   r15 = 0x00000b87cfcb4460
    rip = 0x0000599764f0002f
    Found by: given as instruction pointer in context
 1  chrome!ui::OzonePlatform::InitializeForGPU(ui::OzonePlatform::InitParams const&) [ozone_platform.cc : 64 + 0x8]
    rbx = 0x00007948a9a3e628   rbp = 0x00007948a9a3e600
    rsp = 0x00007948a9a3e5f0   r12 = 0x00000b87cfcb2900
    r13 = 0x00000b87cfcadb80   r14 = 0x00000b87cfcb8e00
    r15 = 0x00000b87cfcadb80   rip = 0x0000599764e6b96d
    Found by: call frame info
 2  chrome!gpu::GpuInit::InitializeInProcess(base::CommandLine*, gpu::GpuPreferences const&) [gpu_init.cc : 347 + 0x5]
    rbx = 0x00007948a9a3e801   rbp = 0x00007948a9a3e790
    rsp = 0x00007948a9a3e610   r12 = 0x00000b87cfcb2900
    r13 = 0x00000b87cfcadb80   r14 = 0x00000b87cfcb8e00
    r15 = 0x00000b87cfcadb80   rip = 0x000059976863b7f2
    Found by: call frame info
 3  chrome!viz::VizMainImpl::VizMainImpl(viz::VizMainImpl::Delegate*, viz::VizMainImpl::ExternalDependencies, std::__1::unique_ptr<gpu::GpuInit, std::__1::default_delete<gpu::GpuInit> >) [viz_main_impl.cc : 146 + 0x8]
    rbx = 0x00000b87cfcb8e00   rbp = 0x00007948a9a3e890
    rsp = 0x00007948a9a3e7a0   r12 = 0x00000b87cfcb2900
    r13 = 0x0000000000000000   r14 = 0x00007948a9a3e930
    r15 = 0x00000b87cfcadb80   rip = 0x0000599765cb668f
    Found by: call frame info
 4  chrome!ui::gpu_host::DefaultGpuHost::InitializeVizMain(mojo::InterfaceRequest<viz::mojom::VizMain>) [memory : 3011 + 0xa]
    rbx = 0x00000b87cfd62480   rbp = 0x00007948a9a3e920
    rsp = 0x00007948a9a3e8a0   r12 = 0x00000b87cfcb2900
    r13 = 0x0000000000000000   r14 = 0x00007948a9a3e930
    r15 = 0x00000b87cfccb400   rip = 0x0000599765cb469b
    Found by: call frame info
 5  chrome!base::internal::Invoker<base::internal::BindState<void (ui::gpu_host::DefaultGpuHost::*)(mojo::InterfaceRequest<viz::mojom::VizMain>), base::internal::UnretainedWrapper<ui::gpu_host::DefaultGpuHost>, base::internal::PassedWrapper<mojo::InterfaceRequest<viz::mojom::VizMain> > >, void ()>::RunOnce(base::internal::BindStateBase*) [bind_internal.h : 507 + 0x2]
...

---

I think that this is the failed CHECK:

262     // If InitializeGPU and InitializeUI are invoked on the same thread, startup
263     // sequencing is complicated because tasks are queued on the unbound mojo
264     // pipe connecting the UI (the host) to the DRM thread before the DRM thread
265     // is launched above. Special case this sequence via the
266     // BlockingStartDrmDevice API.
267     // TODO(rjkroege): In a future when we have completed splitting Viz, it will
268     // be possible to simplify this logic.
269     if (using_mojo_ && single_process_) {
270       CHECK(host_drm_device_)
271           << "Mojo single-process mode requires a HostDrmDevice.";

This might be related to issue 850168.
 
Dan, do you have a revision range for when this started failing? 
I spot-checked a few Chrome crashes in test runs from July 12 and they were all issue 850168. Ditto for July 13 and 14.

The trace above looks like it started showing up on July 15, e.g.

http://stainless/browse/chromeos-autotest-results/217596847-chromeos-test/
http://stainless/browse/chromeos-autotest-results/217671661-chromeos-test/
http://stainless/browse/chromeos-autotest-results/217485316-chromeos-test/
http://stainless/browse/chromeos-autotest-results/217503525-chromeos-test/

Unfortunately, these are all Chrome OS test runs, which are using the version of Chrome blessed by the PFQ... which had been broken for more than a week due to infra changes, so I suspect that this is in the middle of a huge revision range (that also included the fix for issue 850168).
Status: Assigned (was: Untriaged)
Rob, can you find someone to look into this?

I see the same failures in plain-old autotest desktopui_MashLogin, like this one from today:

Test: desktopui_MashLogin.
Suite: bvt-perbuild.
Chrome Version: 70.0.3500.0.
Build: reks-release/R70-10903.0.0.

Reason:
Unhandled BrowserConnectionGoneException: Timed out while waiting 240s
for _GetDevToolsClient..
build artifacts:
https://storage.cloud.google.com/?arg=chromeos-image-archive/reks-release/R70-10903.0.0.
results log: http://ubercautotest.corp.google.com/tko/retrieve_logs.cgi?job=/results/219827044-chromeos-test/chromeos2-row6-rack9-host22/debug/.
status log: http://ubercautotest.corp.google.com/tko/retrieve_logs.cgi?job=/results/219827044-chromeos-test/chromeos2-row6-rack9-host22/status.log.
job link: http://cautotest-prod/afe/#tab_id=view_job&object_id=219827044.

Project Member

Comment 4 by bugdroid1@chromium.org, Jul 23

Labels: merge-merged-release-R69-10895.B
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/autotest/+/c0cc6201b34fb7f693d0389fbcf7554277286be3

commit c0cc6201b34fb7f693d0389fbcf7554277286be3
Author: James Cook <jamescook@chromium.org>
Date: Mon Jul 23 21:26:50 2018

autotest: Disable desktopui_MashLogin on R69 branch

The test fails due to a known mash-only chrome crash that has been
fixed on trunk. Disable the test on the branch to reduce email spam
from the lab.

BUG= chromium:866263 
TEST=desktopui_MashLogin
TBR=derat@chromium.org

Change-Id: I8e4dd0e6dc6e1d52dc27484fceab45334f4e2201
Reviewed-on: https://chromium-review.googlesource.com/1147438
Reviewed-by: James Cook <jamescook@chromium.org>
Tested-by: James Cook <jamescook@chromium.org>

[modify] https://crrev.com/c0cc6201b34fb7f693d0389fbcf7554277286be3/client/site_tests/desktopui_MashLogin/control

I will work on per comment in meeting.
Status: Started (was: Assigned)
Project Member

Comment 7 by bugdroid1@chromium.org, Jul 26

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

commit 3a205cad436e354061f92f7b82411cbd7b250726
Author: Robert Kroeger <rjkroege@chromium.org>
Date: Thu Jul 26 15:00:14 2018

[ozone/drm/mojo]: Correctly bound CHECK for same-thread init

Ozone/drm/mojo assumes when running in single-process mode on one thread
that the UI portion will be initialized before the GPU portion.
CHECK this only in the single thread case instead of (wrongly) checking
it in the single-process case as well.

BUG= 866263 
TEST=by-hand with wait insertion with and without check change.

Change-Id: I0029ac81f23c11153d8e2e027f7003f7f616af11
Reviewed-on: https://chromium-review.googlesource.com/1150845
Commit-Queue: Robert Kroeger <rjkroege@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578303}
[modify] https://crrev.com/3a205cad436e354061f92f7b82411cbd7b250726/ui/ozone/platform/drm/ozone_platform_gbm.cc

Status: Fixed (was: Started)

Sign in to add a comment