New issue
Advanced search Search tips

Issue 914688 link

Starred by 1 user

Issue metadata

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



Sign in to add a comment

security.GPUSandboxed fails on VMs

Project Member Reported by derat@chromium.org, Dec 13

Issue description

security.GPUSandboxed looks like it's consistently failing on betty-release. See e.g. http://cros-goldeneye/chromeos/healthmonitoring/buildDetails?buildbucketId=8927850000372856128

2018/12/11 16:42:53 Started test security.GPUSandboxed
2018/12/11 16:42:53 [16:42:52.532] Restarting ui job
2018/12/11 16:42:56 [16:42:56.141] Clearing device owner info
2018/12/11 16:42:56 [16:42:56.365] Waiting for org.chromium.SessionManager D-Bus service
2018/12/11 16:42:56 [16:42:56.379] Asking session_manager to enable Chrome testing
2018/12/11 16:42:56 [16:42:56.383] Waiting for Chrome to write its debugging port to /home/chronos/DevToolsActivePort
2018/12/11 16:42:57 [16:42:57.372] Removing cryptohome for testuser@gmail.com
2018/12/11 16:42:58 [16:42:57.509] Finding OOBE DevTools target
2018/12/11 16:42:58 [16:42:57.862] Connecting to Chrome at ws://127.0.0.1:35559/devtools/page/EE87BB5F706F829F388AF9191B6FA0EA
2018/12/11 16:42:58 [16:42:58.131] Waiting for OOBE
2018/12/11 16:43:05 [16:43:04.892] Logging in as user "testuser@gmail.com"
2018/12/11 16:43:06 [16:43:05.508] Waiting for cryptohome for user "testuser@gmail.com"
2018/12/11 16:43:12 [16:43:12.231] Waiting for OOBE to be dismissed
2018/12/11 16:43:15 [16:43:14.423] Creating new page with URL chrome://gpu
2018/12/11 16:43:15 [16:43:14.592] Connecting to Chrome at ws://127.0.0.1:35559/devtools/page/FEA6B667179F9C8E31B5AD3ED310406B
2018/12/11 16:43:46 [16:43:45.818] Error at gpu_sandboxed.go:46: Failed to evaluate "browserBridge.isSandboxedForTesting()" in chrome://gpu
2018/12/11 16:43:46 [16:43:45.818] Stack trace:
Failed to evaluate "browserBridge.isSandboxedForTesting()" in chrome://gpu
	at chromiumos/tast/local/bundles/cros/security.GPUSandboxed (gpu_sandboxed.go:46)
	at chromiumos/tast/testing.(*Test).Run.func4 (test.go:208)
	at chromiumos/tast/testing.runStages.func1.1 (stage.go:39)
	at chromiumos/tast/testing.runAndRecover.func1 (stage.go:69)
	at runtime.goexit (asm_amd64.s:2361)
2018/12/11 16:43:46 Completed test security.GPUSandboxed in 53.342s with 1 error(s)

From jslog.txt:

================================================================== chrome://gpu/
2018-12-11 16:43:16 [eval-error] ReferenceError: browserBridge is not defined
	at ??? ( [0:0])
2018-12-11 16:43:16 [eval-error] ReferenceError: browserBridge is not defined
	at ??? ( [0:0])
2018-12-11 16:43:16 [eval-error] ReferenceError: browserBridge is not defined
	at ??? ( [0:0])
2018-12-11 16:43:16 [eval-error] TypeError: Cannot read property 'basicInfo' of undefined
	at isSandboxedForTesting (chrome://gpu/gpu_internals.js [152:36])
	at ??? ( [0:17])

chrome://gpu/gpu_internals.js looks like it contains the following:

    /**
     * Returns the value of the "Sandboxed" row.
     */
    isSandboxedForTesting : function() {
      for (i = 0; i < this.gpuInfo_.basicInfo.length; ++i) {
        var info = this.gpuInfo_.basicInfo[i];
        if (info.description == "Sandboxed")
          return info.value;
      }
      return false;
    }

When I boot a betty image and load chrome://gpu, it says that sandboxing is disabled, so even if we were to fix the JS to not throw an exception, I think that the test would fail. It's probably best to add a software feature/dependency like "gpu_sandbox" so this test can be skipped on VMs.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Dec 14

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/tast/+/92d132dd3e24ad9ca21f0703840714ae6b678802

commit 92d132dd3e24ad9ca21f0703840714ae6b678802
Author: Daniel Erat <derat@chromium.org>
Date: Fri Dec 14 03:28:19 2018

tast: Add "gpu_sandboxing" dependency.

Add a new "gpu_sandboxing" feature that can be depended on
by the security.GPUSandboxed test so it will be skipped on
VMs.

BUG= chromium:914688 
TEST=local_test_runner builds

Change-Id: Ib3f37b8b0b58a655d6b3a34782686346d877e65f
Reviewed-on: https://chromium-review.googlesource.com/1375017
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Dan Erat <derat@chromium.org>
Reviewed-by: Shuhei Takahashi <nya@chromium.org>

[modify] https://crrev.com/92d132dd3e24ad9ca21f0703840714ae6b678802/src/chromiumos/cmd/local_test_runner/main.go
[modify] https://crrev.com/92d132dd3e24ad9ca21f0703840714ae6b678802/docs/test_dependencies.md

Project Member

Comment 2 by bugdroid1@chromium.org, Dec 15

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/tast-tests/+/ead49504f6607e0b685bed466c5173da31dc7084

commit ead49504f6607e0b685bed466c5173da31dc7084
Author: Daniel Erat <derat@chromium.org>
Date: Sat Dec 15 06:40:38 2018

tast-tests: Make security.GPUSandboxed get skipped on VMs.

Make the security.GPUSandboxed test depend on a new
"gpu_sandboxing" feature so it will be skipped on VMs.

BUG= chromium:914688 
TEST=none
CQ-DEPEND=Ib3f37b8b0b58a655d6b3a34782686346d877e65f

Change-Id: I91f02cfeb02749dc2c2aefff9512a19b170ebdd3
Reviewed-on: https://chromium-review.googlesource.com/1375274
Commit-Ready: Dan Erat <derat@chromium.org>
Tested-by: Dan Erat <derat@chromium.org>
Reviewed-by: Hidehiko Abe <hidehiko@chromium.org>

[modify] https://crrev.com/ead49504f6607e0b685bed466c5173da31dc7084/src/chromiumos/tast/local/bundles/cros/security/gpu_sandboxed.go

It looks like security.GPUSandboxed is somehow running on chrome-amd64-generic-rel bot and failing on the auto-update of chromeos LKGM (see https://chromium-review.googlesource.com/c/chromium/src/+/1369964 or https://chromium-review.googlesource.com/c/chromium/src/+/1396244).

It hasn't been noticed unfortunately since the step of creating automated LKGM update has been broken for weeks.
Cc: mukai@chromium.org
Cc: derat@chromium.org achuith@chromium.org
Owner: bpastene@chromium.org
The only failures I see on https://crrev.com/c/1369964 are on chromeos-daisy-rel and don't appear to be related to Tast. Am I missing something there?

On https://crrev.com/c/1396244, the chromeos-amd64-generic-rel run at https://ci.chromium.org/p/chromium/builders/luci.chromium.try/chromeos-amd64-generic-rel/161680, the issue is that local_test_runner is being run with the following command line:

local_test_runner "'( !disabled && !\"group:*\" && !informational && (\"dep:chrome\" || \"dep:chrome_login\") && !\"name:ui.MashLogin\" )'"

In order for tests that won't work on VMs to be skipped, -extrauseflags=tast_vm needs to also be passed by chromeos-amd64-generic-rel (and any other builders that run tests in VMs).

Ben or Achuith (or anyone else), can you make this change to the appropriate GN files in the chromium repo? I don't have easy access to a chromium checkout right now. :-(
Cc: alemate@chromium.org
Labels: -Pri-2 Hotlist-CrOS-Gardener Pri-0
Let me increase the priority for skipping for chromeos-amd64-generic-rel, otherwise it anyways fails to update -- and cc-ing the gardener of this week. Please deprioritize when skipping is done.
Cc: steve...@chromium.org
Thanks for filing, and for the quick diagnosis. Uploaded https://chromium-review.googlesource.com/c/chromium/src/+/1398842 to add the arg.

Once that lands, I think the lkgm should finally start rolling again :)
Project Member

Comment 8 by bugdroid1@chromium.org, Jan 7

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

commit 86155b6373ea23e702481b30ce15b95052cce754
Author: Ben Pastene <bpastene@chromium.org>
Date: Mon Jan 07 20:12:58 2019

Skip VM-incompatible tast tests when running in cros VMs.

Some tests aren't meant to run in VMs. Passing this flag to
local_test_runner will skip them.

Bug:  914688 
Change-Id: I867680329a9a6d43633bccfbb5f2a7d457242a50
Reviewed-on: https://chromium-review.googlesource.com/c/1398842
Reviewed-by: John Budorick <jbudorick@chromium.org>
Commit-Queue: Ben Pastene <bpastene@chromium.org>
Cr-Commit-Position: refs/heads/master@{#620444}
[modify] https://crrev.com/86155b6373ea23e702481b30ce15b95052cce754/build/chromeos/test_runner.py

Project Member

Comment 9 by bugdroid1@chromium.org, Jan 7

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

commit 6310e2f8f3ec17287beeba740b8f499aad215cbd
Author: 3su6n15k.default@developer.gserviceaccount.com <3su6n15k.default@developer.gserviceaccount.com>
Date: Mon Jan 07 21:42:25 2019

Automated Commit: LKGM 11538.0.0 for chromeos.

BUG= 762641 ,  914688 
TBR=oshima@chromium.org

Change-Id: Ie2d03e04e4a1735cdaebe06d5e9838deb45dbd35
Reviewed-on: https://chromium-review.googlesource.com/c/1397434
Commit-Queue: Ben Pastene <bpastene@chromium.org>
Reviewed-by: ChromeOS bot <3su6n15k.default@developer.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#620483}
[modify] https://crrev.com/6310e2f8f3ec17287beeba740b8f499aad215cbd/chromeos/CHROMEOS_LKGM

Labels: -Pri-0 Pri-2
Thank you for taking care of this!
Status: Fixed (was: Started)
Things seem happy now, and the test is correctly getting skipped in VMs.

Sign in to add a comment