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

Issue 707461 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 1
Type: Bug



Sign in to add a comment

Kevin --no-sandbox broken

Project Member Reported by marc...@chromium.org, Apr 1 2017

Issue description

Chrome Version: (copy from chrome://version)
OS: (e.g. Win7, OSX 10.9.5, etc...)

What steps will reproduce the problem?
(1) pass --no-sandbox to Chrome on Kevin
(2) Chrome doesn't start
(3) I can't debug things

What is the expected result?
chrome starts and I debug things

What happens instead?
I go home earlier on Friday because I can't debug

Please use labels and text to provide additional information.


For graphics-related bugs, please copy/paste the contents of the about:gpu
page at the end of this report.

 
Cc: afakhry@chromium.org abodenha@chromium.org
Cc: xzhou@chromium.org
Labels: OS-Linux
I don't work on the Linux sandbox, and I don't have a Kevin, but maybe I can help with more information. Do you have logs from Chrome when it fails to start? What does it say?
Cc: marc...@chromium.org
Labels: Needs-Feedback
@kerrnel, who is the sandbox person for Chrome OS?

Attached is the ui.LATEST log.
ui.LATEST
21.4 KB Download
It seems the fatal error is this:

[3508:3508:0404/124831.036615:FATAL:sandbox_linux.cc(341)] InitializeSandbox() called with multiple threads in process gpu-process. This error can be safely ignored in VMTests.

Coming from: https://cs.chromium.org/chromium/src/content/common/sandbox_linux/sandbox_linux.cc?q=sandbox_linux.cc&dr&l=329

But this doesn't make sense. That code explicitly states that the error should not be fatal in the gpu-process. 

Unless "gpu-sandbox-failures-fatal" somehow got set, I'm not sure how that code could trigger the FATAL error.
Cc: jsc...@chromium.org
Justin, who is the sandbox person for Linux/Chrome OS?
Cc: jln@chromium.org jorgelo@chromium.org
Hopefully jln@ or jorgelo@ can help.
The problem is that we're hitting that LOG(FATAL) even with --no-sandbox on. Stéphane, any change in how flags are propagated? Or how the GPU process receives its flags?

I also don't have a Kevin, will ask vapier@ if he has one.
Mike doesn't have one, if this is specific to Kevin I will need one shipped to me.
It definitely doesn't happen on x86 devices, so you are probably better off getting a Kevin. We are selling it right now, so I'm sure chromestop can provide you with one.
I can email crosdistros@ and see what they say.
Quick update here: still waiting for a Kevin.
@12: is one on the way?  Do you need any expediting / approvals, or is this just the slowness of shipping stuff?
One is on the way indeed.
I got the kevin yesterday. I was able to repro the issue today. Still clueless as to why it's happening.
We seem to indeed ignoring the --no-sandbox flag:

[8368:8368:0414/075639.045520:ERROR:sandbox_linux.cc(299)] process_type gpu-process --no-sandbox 1
[8368:8368:0414/075639.059791:ERROR:sandbox_linux.cc(299)] process_type gpu-process --no-sandbox 1
Owner: jorgelo@chromium.org
Here's what happens:

On mali, we try to start the sandbox early
But we end up not doing that because of --no-sandbox
Then we come to the sandbox init for all other GPUs
And we try again because we're not sandboxed because of --no-sandbox
And this time we fail because of threads (which get checked before --no-sandbox).

Fix at https://codereview.chromium.org/2814793007/, to avoid attempting the second sandbox init when the first one was already attempted.
Project Member

Comment 18 by bugdroid1@chromium.org, Apr 21 2017

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

commit 754f1ec2c538c710a8a5bf304643acd89f106db0
Author: jorgelo <jorgelo@chromium.org>
Date: Fri Apr 21 01:27:07 2017

Fix --no-sandbox and --disable-gpu-sandbox on Mali.

On Mali GPUs we try to start the sandbox early, before the driver
spawns threads. Because of --no-sandbox, we don't actually start the
sandbox. |gpu_info.sandboxed| will then be false, so at the bottom of
the InitializeAndStartSandbox function we'll try to start the sandbox
again, but at this time the Mali driver will have already started
threads and we'll LOG(FATAL).

Fix by not attempting the second sandbox start when the early one
was attempted.

BUG= 707461 
TEST=Build for Kevin, add --no-sandbox to the cmdline, UI starts.
TEST=Add --disable-gpu-sandbox to the cmdline, UI starts.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2814793007
Cr-Commit-Position: refs/heads/master@{#466212}

[modify] https://crrev.com/754f1ec2c538c710a8a5bf304643acd89f106db0/gpu/ipc/service/gpu_init.cc

Status: Fixed (was: Available)

Sign in to add a comment