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

Issue 822387 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Last visit > 30 days ago
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

"create note" UI crashes gpu process when maximized or minimized

Project Member Reported by spang@chromium.org, Mar 15 2018

Issue description

This crashes within a few clicks if you minimize/maximize repeatedly.

Something closing random file descriptors?

1:1:0315/150139.813340:ERROR:shared_memory_handle_posix.cc(43)] close: Bad file descriptor (9)
[1,105277312:19:01:39.824438] Native Client module will be loaded at base address 0x0000568f00000000
[9638:9648:0315/150148.816722:ERROR:hardware_display_plane_manager_atomic.cc(80)] Failed to commit properties for page flip.: Invalid argument (22)

Crash dump received by crash_reporter
ERROR [third_party/sketchology/engine/rendering/baseGL/msaa.cc:95] Some video driver error or programming error occurred. Framebuffer object status is invalid.
ERROR [third_party/sketchology/engine/rendering/baseGL/render_target.cc:170] Failed to generate MSAA buffers
ERROR [third_party/sketchology/engine/rendering/baseGL/msaa.cc:95] Some video driver error or programming error occurred. Framebuffer object status is invalid.
ERROR [third_party/sketchology/engine/util/dbg/errors_internal.cc:13] gl error 0x0 in GenBuffers at render_target.cc:214
[1,105277312:19:01:48.913282] NaCl untrusted code called _exit(0x1)
gzip: /home/user/e6d918ab9bf553e774e8980c0b907c742a786894/crash/chrome.20180315.150148.9638.chrome.txt.gz already exists;	not overwritten

Crash dump received by crash_reporter
device-enumerator: scan all dirs
  device-enumerator: scanning /sys/bus
  device-enumerator: scanning /sys/class
[1318:1318:0315/150149.668988:ERROR:gpu_process_transport_factory.cc(1019)] Lost UI shared context.
[1318:1462:0315/150149.737396:ERROR:nacl_process_host.cc(263)] NaCl process exited with status 256 (0x100)

 
debug-logs_20180315-150349.tgz
969 KB Download
Which create note UI are you talking about? Lock screen, keep app, android app, or some other chrome extension app?

Comment 2 by spang@chromium.org, Mar 15 2018

Oops sorry for not being specific :) The one opened via "Create note" in stylus tools.

Comment 3 by spang@chromium.org, Mar 15 2018

Summary: "create note" UI crashes gpu process when maximized or minimized (was: "create note" UI crashes browser when maximized or minimuzed)

Comment 4 by spang@chromium.org, Mar 15 2018

Cc: dcasta...@chromium.org reve...@chromium.org marc...@chromium.org
Components: -UI>Input OS>Kernel>Graphics
This actually seems to be an issue with graphics/overlays

We get an error when trying to flip two planes

(gdb)  print planes.__begin_[0]
$50 = {buffer = {ptr_ = 0x521b3165580}, z_order = 0, plane_transform = (anonymous namespace)::OVERLAY_TRANSFORM_NONE, display_bounds = {origin_ = {x_ = 0, y_ = 0}, size_ = {width_ = 2400, height_ = 1600}}, crop_rect = {origin_ = {x_ = 0, y_ = 0}, size_ = {static kTrivial = 9.53674316e-07, width_ = 1, height_ = 1}}, fence_fd = -1}

(gdb)  print planes.__begin_[1]
$51 = {buffer = {ptr_ = 0x521b4064880}, z_order = 1, plane_transform = (anonymous namespace)::OVERLAY_TRANSFORM_NONE, display_bounds = {origin_ = {x_ = 698, y_ = 512}, size_ = {width_ = 1004, height_ = 646}}, crop_rect = {origin_ = {x_ = 0, y_ = 0}, size_ = {static kTrivial = 9.53674316e-07, width_ = 1, height_ = 1}}, fence_fd = -1}

+ people

Did anything change wrt overlays on eve in M65?

Comment 5 by spang@chromium.org, Mar 19 2018

Cc: dnicoara@chromium.org

Comment 6 by spang@chromium.org, Mar 19 2018

Labels: M-66 M-67

Comment 7 by spang@chromium.org, Mar 19 2018

Labels: M-64 M-63
This goes back pretty far. In M-63 same steps cause a GPU hang instead of a crash. M-62 neither hangs no crashes.
Owner: reve...@chromium.org
Status: Assigned (was: Untriaged)
Dave, can you take a look?

Comment 9 by spang@chromium.org, Mar 22 2018

Cc: wutao@chromium.org osh...@chromium.org
The hang in M63 started at

commit cefb285b7c7933eff34c694e8384e9c7ceb6781c (HEAD)
Author: wutao <wutao@chromium.org>
Date:   Mon Oct 9 19:25:41 2017 +0000

    CrOS: Only caching render surface when there is an opacity animation.
    
    When there is an opacity for a hierarchy of layers, it requires that a
    render surface (RS) is created to produce correct output. In this case,
    caching RS is always a benefit as we need a RS anyhow and it just avoids
    having to recreate it from the hierarchy of layers each frame of the
    animation.
    
    the layer with opacity animation.
    
    Bug:  756695 
    Test: Tested in cross fade animation, only cached render surface of
    Change-Id: Ia01e04954b69207530556569cf6f5770a0dc021b
    Reviewed-on: https://chromium-review.googlesource.com/703917
    Reviewed-by: David Reveman <reveman@chromium.org>
    Reviewed-by: Mitsuru Oshima <oshima@chromium.org>
    Commit-Queue: Tao Wu <wutao@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#507444}


Comment 10 by wutao@chromium.org, Mar 22 2018

#9, The first cl to cache render surface in CrossFadeAnimation animation is this cl: https://chromium-review.googlesource.com/c/chromium/src/+/619931

I do not see obvious change in the cl mentioned in #9 will cause problem. Is it possible other underlining GPU changes in M63 triggers the GPU hang?

Comment 11 by spang@chromium.org, Mar 22 2018

Sure. Although it only reproduces as of cefb285b7c7933eff34c694e8384e9c7ceb6781c, root cause may be something else.

Possible it's a dupe of bug 797137, I need to test again with the fix to that one.

Comment 12 by wutao@chromium.org, Mar 22 2018

Hi spang@, could you please put the repro steps here. Thanks!

Comment 13 by spang@chromium.org, Mar 22 2018

Click the maximize button a few times. Usually the 2nd click will crash.

Comment 14 by spang@chromium.org, Mar 22 2018

(of the note taking UI opened from stylus tools -> "create note")

Comment 15 by spang@chromium.org, Mar 22 2018

I tested at HEAD again, still crashes as of fa58702af161fff240ab4e8c91b368761f4f6df1

Comment 16 by spang@chromium.org, Mar 22 2018

This patch from wutao@ applied to HEAD (fa58702af161fff240ab4e8c91b368761f4f6df1) makes the crash significantly harder to reproduce, but does not completely fix it (varies, but can take dozens of maximize, unmaximize cycles instead of usually just 2)

Suspect cefb285b7c7933eff34c694e8384e9c7ceb6781c just started tickling the overlay code differently, making a latent issue very reproducible.

diff --git a/ash/wm/window_animations.cc b/ash/wm/window_animations.cc
index 232a16ebf9417..6f7c9cdb91d8e 100644
--- a/ash/wm/window_animations.cc
+++ b/ash/wm/window_animations.cc
@@ -347,12 +347,7 @@ base::TimeDelta CrossFadeAnimation(
     settings.SetTweenType(tween_type);
     // Only add reporter to |old_layer|.
     settings.SetAnimationMetricsReporter(g_reporter_cross_fade.Pointer());
-    settings.DeferPaint();
     if (old_on_top) {
-      // Only caching render surface when there is an opacity animation and
-      // multiple layers.
-      if (!old_layer->children().empty())
-        settings.CacheRenderSurface();
       // The old layer is on top, and should fade out.  The new layer below will
       // stay opaque to block the desktop.
       old_layer->SetOpacity(kWindowAnimation_HideOpacity);
@@ -392,12 +387,7 @@ base::TimeDelta CrossFadeAnimation(
     ui::ScopedLayerAnimationSettings settings(new_layer->GetAnimator());
     settings.SetTransitionDuration(duration);
     settings.SetTweenType(tween_type);
-    settings.DeferPaint();
     if (!old_on_top) {
-      // Only caching render surface when there is an opacity animation and
-      // multiple layers.
-      if (!new_layer->children().empty())
-        settings.CacheRenderSurface();
       // New layer is on top, fade it in.
       new_layer->SetOpacity(kWindowAnimation_ShowOpacity);
     }

Comment 17 by wutao@chromium.org, Mar 22 2018

Thank you spang@ to test this.
I can take a look at this when I get back to NYC on Monday. I don't think the caching of render surfaces is related as we always composite render surface using the gpu. Probably just happens that this change made it easier to repro.
Cc: tbuck...@chromium.org

Sign in to add a comment