ui.MashLogin fails with OzonePlatformGbm::InitializeGPU abort: "Mojo single-process mode requires a HostDrmDevice." |
|||||
Issue descriptionThe 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.
,
Jul 22
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).
,
Jul 23
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.
,
Jul 23
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
,
Jul 23
I will work on per comment in meeting.
,
Jul 24
,
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
,
Jul 26
|
|||||
►
Sign in to add a comment |
|||||
Comment 1 by sky@chromium.org
, Jul 21