New issue
Advanced search Search tips

Issue 874533 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Sep 12
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Fuchsia
Pri: 1
Type: Bug-Regression



Sign in to add a comment

[Fuchsia] webrunner fails to start

Project Member Reported by sergeyu@chromium.org, Aug 15

Issue description

Currently webrunner fails to start, crashing when trying to start GPU process. There are 3 separate bugs:

1. GPU process is being started even though the browser process is started with --disable-gpu . This started happening after https://chromium-review.googlesource.com/1170040 which enabled swiftsharer on Fuchsia (because swiftshader is enabled in headless ozone platform now). When swiftshader is enabled browser process starts GPU process even with --disable-gpu. It doesn't verify if SwiftShader is supported by the current Ozone platform (see https://codesearch.chromium.org/chromium/src/content/browser/gpu/gpu_data_manager_impl_private.cc?sq=package:chromium&dr&g=0&l=321 ). On Fuchsia SwiftShader is supported by headless ozone, but not in Scenic. 

2. GPU process crashes when the list of GL impls is empty, see InitializeGLOneOffHelper(), while Scenic ozone platform currently returns empty list of allowed GL implementations. We should either fix InitializeGLOneOffHelper() to handle this case or update Ozone platform to allow SwiftShader.

[02890.104] [1280646:1375011783:0815/181153.530695:FATAL:gl_factory.cc(34)] Check failed: !allowed_impls.empty().
[02890.104] bt#00: pc 0x3bb76894737f (app:/pkg/bin/app,0x86e337f)
[02890.104] bt#01: pc 0x3bb768722b8c (app:/pkg/bin/app,0x84beb8c)
[02890.104] bt#02: pc 0x3bb7687201fa (app:/pkg/bin/app,0x84bc1fa)
[02890.104] bt#03: pc 0x3bb76a5325ff (app:/pkg/bin/app,0xa2ce5ff) gl::init::(anonymous namespace)::InitializeGLOneOffHelper(bool) at //ui/gl/init/gl_factory.cc:?
[02890.104] bt#04: pc 0x3bb76a5337f8 (app:/pkg/bin/app,0xa2cf7f8) gl::init::InitializeGLNoExtensionsOneOff() at //ui/gl/init/gl_factory.cc:84


3. Browser doesn't handle GPU process crash properly, and also crashes:

[02890.117] [1280355:413355079:0815/181153.543820:FATAL:scoped_refptr.h(219)] Check failed: ptr_.
[02890.117] bt#00: pc 0x7cfb2fbd37f (app:/pkg/bin/app,0x86e337f)
[02890.117] bt#01: pc 0x7cfb2d98b8c (app:/pkg/bin/app,0x84beb8c)
[02890.117] bt#02: pc 0x7cfb2d961fa (app:/pkg/bin/app,0x84bc1fa)
[02890.117] bt#03: pc 0x7cfad3c17f2 (app:/pkg/bin/app,0x2ae77f2) scoped_refptr<network::ResourceRequestBody>::operator->() const at //base/memory/scoped_refptr.h:220
[02890.117] bt#04: pc 0x7cfae3cec19 (app:/pkg/bin/app,0x3af4c19) ~SandboxPolicyFuchsia at //content/common/sandbox_policy_fuchsia.cc:31
[02890.117] bt#05: pc 0x7cfafe5b631 (app:/pkg/bin/app,0x5581631) ~ChildProcessLauncherHelper at //content/browser/child_process_launcher_helper.cc:83
[02890.117] bt#06: pc 0x7cfafe5a967 (app:/pkg/bin/app,0x5580967) void base::RefCountedThreadSafe<content::internal::ChildProcessLauncherHelper, base::DefaultRefCountedThreadSafeTraits<content::internal::ChildProcessLauncherHelper> >::DeleteInternal<content::internal::ChildProcessLauncherHelper>(content::internal::ChildProcessLauncherHelper const*) at //base/memory/ref_counted.h:411

This issue is expected to be fixed in https://chromium-review.googlesource.com/c/chromium/src/+/1164539
 
Labels: -Type-Bug M-70 Type-Bug-Regression
Cc: danakj@chromium.org rjkroege@chromium.org spang@chromium.org piman@chromium.org
+some relevant folks in CC.

Dana, Antoine,
Do you have any suggestions on what would be the right way to deal with the first 2 issues? It's not clear to me if --disable-gpu does anything given that GPU process is still started because swiftshader is supported on all platforms.
Also we could enable SwiftShader with Scenic, but it won't make sense long-term because Scenic works only on hardware that supports Vulkan.
Cc: kylec...@chromium.org
For #1, with viz we always start the "GPU" process (which does more than GPU, i.e. Display also) even for software
For #2, it sounds like the assert is wrong, we should just return true instead, setting the GL implementation to gl::kGLImplementationDisabled (merge with the above if?)
Status: Started (was: Assigned)
I'll make a fix for (2)
Project Member

Comment 5 by bugdroid1@chromium.org, Aug 16

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

commit 5868b6d93ec1d06c0a23f3349ab0fd3e8e86ccbc
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Thu Aug 16 21:47:48 2018

[Fuchsia] Fix crash in ~SandboxPolicyFuchsia()

The function as crashing browser process after GPU process is crashed.

Bug:  874533 
Change-Id: I2c506b6f90642a0881aa510807cb407e1b655050
Reviewed-on: https://chromium-review.googlesource.com/1178753
Reviewed-by: Kevin Marshall <kmarshall@chromium.org>
Commit-Queue: Kevin Marshall <kmarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#583829}
[modify] https://crrev.com/5868b6d93ec1d06c0a23f3349ab0fd3e8e86ccbc/content/common/sandbox_policy_fuchsia.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Aug 21

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

commit 592479ac723c14680af7043d7aa7716c2f928f66
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Tue Aug 21 02:47:27 2018

Update GL initialization logic to allow empty list of GL impls.

Scenic Ozone platform doesn't support GL. InitializeGLOneOffHelper() was
crashing in that case.

Bug:  874533 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I696847b292f015030f2ae32a7044ba8234e0b6a5
Reviewed-on: https://chromium-review.googlesource.com/1178754
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584608}
[modify] https://crrev.com/592479ac723c14680af7043d7aa7716c2f928f66/ui/gl/init/gl_factory.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Aug 21

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

commit 033428c94555f465b620805d61bd5e9b580e64e3
Author: Sergey Ulanov <sergeyu@chromium.org>
Date: Tue Aug 21 17:04:31 2018

[Fuchsia] Don't pass --disable-gpu to webrunner context process

Previously --disable-gpu process was passed to context process
to prevent it from starting GPU process. It no longer disables
GPU process, but GPU process should not crash once
https://crrev.com/r/1178754 lands.

Bug: 867052,  874533 
Change-Id: If2baf7aa50dd9ccb6ee5442d079f50c1908ed72c
Reviewed-on: https://chromium-review.googlesource.com/1178881
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Reviewed-by: Kevin Marshall <kmarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584794}
[modify] https://crrev.com/033428c94555f465b620805d61bd5e9b580e64e3/webrunner/service/context_provider_impl.cc

Status: Fixed (was: Started)

Sign in to add a comment