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

Issue 660461 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
OOO until 2019-01-24
Closed: Nov 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug



Sign in to add a comment

Pixel_ScissorTestWithPreserveDrawingBuffer flaky on Mac release bots

Project Member Reported by ajuma@chromium.org, Oct 28 2016

Issue description

This is flaking on the Mac 10.10 Release (Intel) bot on the main GPU waterfall, on the Mac 10.10 Release (Intel) and Mac 10.10 Release (ATI) bot on the GPU fyi waterfall, and on the Mac Intel GPU trybot.

Output:
AssertionError: Expected pixel at [1, 1] (actual pixel (1, 1))  to be [255, 0, 0] but got [255, 255, 255]

The test page (https://cs.chromium.org/chromium/src/content/test/data/gpu/pixel_scissor.html) starts by clearing to red (before clearing a scissored-rect to green), so getting a while pixel seems very fishy (unless we're not drawing at all?).

It's also interesting that it's not flaking on any of the debug bots.

The first flake I can find is at r427889. One possibly-related Mac change around that time is r427844 ("Fix mac raciness with initial needs begin frame state") which did fix a blank-page bug, so maybe related?

Some failure logs:
https://build.chromium.org/p/chromium.gpu/builders/Mac%2010.10%20Release%20%28Intel%29/builds/21496
https://build.chromium.org/p/chromium.gpu.fyi/builders/Mac%2010.10%20Release%20%28Intel%29/builds/18624
https://build.chromium.org/p/chromium.gpu.fyi/builders/Mac%2010.10%20Release%20%28ATI%29/builds/12551
 

Comment 1 by ajuma@chromium.org, Oct 28 2016

Typo: "getting a while pixel" -> "getting a *white* pixel"

Comment 2 by kbr@chromium.org, Oct 28 2016

Cc: ccameron@chromium.org erikc...@chromium.org
Components: Internals>Compositing Blink>WebGL

Comment 3 by ajuma@chromium.org, Oct 28 2016

Cc: ajuma@chromium.org
 Issue 660522  has been merged into this issue.
Labels: OS-Mac
Summary: Pixel_ScissorTestWithPreserveDrawingBuffer flaky on Mac release bots (was: PixelTest_ScissorTestWithPreserveDrawingBuffer flaky on Mac release bots)

Comment 5 by kbr@chromium.org, Oct 30 2016

Components: -Internals>GPU
Status: Available (was: Untriaged)
For the record, here are the last 200 builds on the Mac Release Intel bots:

https://build.chromium.org/p/chromium.gpu/builders/Mac%2010.10%20Release%20%28Intel%29?numbuilds=200
https://build.chromium.org/p/chromium.gpu.fyi/builders/Mac%2010.10%20Release%20%28Intel%29?numbuilds=200

the Mac Release ATI bot is more flaky. This is one of the older Mac Pros and is not a critical configuration. The Mac Intel bots are on the CQ though.

https://build.chromium.org/p/chromium.gpu.fyi/builders/Mac%2010.10%20Release%20%28ATI%29?numbuilds=200

It does look like there might be some sort of race condition where the canvas isn't displayed at all before the screenshot is taken. Here's the failure information for one of the runs:

http://chromium-browser-gpu-tests.commondatastorage.googleapis.com/view_test_results.html?63eb41627998d3d0eba0f97f23d992288bb968ae_Mac_10_10_Release_Intel__telemetry

(Links like this are at the end of all of the runs that had a failure)

Note that the screenshot captured is completely white.

I've recently made some changes to DrawingBuffer ( issue 648707 ), which is supposed to restore scissor state at various points, but those changes aren't Mac or GPU-specific.
Also, it's a bit hard to figure out what is going on from the logs ...

Pixel_ScissorTestWithPreserveDrawingBuffer (gpu_tests.pixel_integration_test.PixelIntegrationTest) ... (WARNING) 2016-10-29 12:19:57,546 pixel_integration_test.RestartBrowserIfNecessaryWithArgs:92  Restarting browser with arguments: []
(WARNING) 2016-10-29 12:20:03,558 desktop_browser_backend.Close:598  Failed to gracefully shutdown.
(WARNING) 2016-10-29 12:20:03,558 desktop_browser_backend.Close:602  Proceed to kill the browser.

Does that mean that the renderer crashed or hung? Would we get a stack if it did? If this is crash during readback, then it sounds similar to issue 659341 (but again, that's not Mac-specific, and is deterministic).

Comment 8 by kbr@chromium.org, Nov 1 2016

I don't see that in for example this log:
https://build.chromium.org/p/chromium.gpu/builders/Mac%2010.10%20Release%20%28Intel%29/builds/21718

The salient portions are:

Pixel_ScissorTestWithPreserveDrawingBuffer (gpu_tests.pixel_integration_test.PixelIntegrationTest) ... (WARNING) 2016-10-31 17:41:41,679 pixel_integration_test.RestartBrowserIfNecessaryWithArgs:92  Restarting browser with arguments: []
...
(INFO) 2016-10-31 17:41:43,996 cloud_storage.Insert:310  Uploading /b/s/w/itB3VTA0/tmpwgLJUs.png to gs://chromium-browser-gpu-tests/runs/6e41151c77fb7e6a2fe2876e09f7db1e275388f4_Mac_10_10_Release_Intel__telemetry/gen/Pixel_ScissorTestWithPreserveDrawingBuffer_6e41151c77fb7e6a2fe2876e09f7db1e275388f4.png (publicly readable)

Traceback (most recent call last):
  _RunGpuTest at content/test/gpu/gpu_tests/gpu_integration_test.py:78
    self.RunActualGpuTest(url, *args)
  RunActualGpuTest at content/test/gpu/gpu_tests/pixel_integration_test.py:160
    tab, page.name, screenshot, page.expected_colors, dpr)
  _ValidateScreenshotSamples at content/test/gpu/gpu_tests/cloud_storage_integration_test_base.py:352
    self.GetParsedCommandLineOptions().test_machine_name)
  _CompareScreenshotSamples at content/test/gpu/gpu_tests/cloud_storage_integration_test_base.py:165
    str(actual_color.b) + "]")
  fail at /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/case.py:412
    raise self.failureException(msg)
AssertionError: Expected pixel at [1, 1] (actual pixel (1, 1))  to be [255, 0, 0] but got [255, 255, 255]

Locals:
  msg : 'Expected pixel at [1, 1] (actual pixel (1, 1))  to be [255, 0, 0] but got [255, 255, 255]'
...
See http://chromium-browser-gpu-tests.commondatastorage.googleapis.com/view_test_results.html?6e41151c77fb7e6a2fe2876e09f7db1e275388f4_Mac_10_10_Release_Intel__telemetry for this run's test results

Note that the generated image for Pixel_ScissorTestWithPreserveDrawingBuffer in the last link is all white.

This test doesn't wait for a few swaps before grabbing the screenshot, while the other pixel tests do after they complete their rendering. I'm submitting https://codereview.chromium.org/2466733003/ to see if it improves the robustness of the test.

Project Member

Comment 9 by bugdroid1@chromium.org, Nov 2 2016

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

commit d805f7422e548f673533dc36e39ab9f8429eb616
Author: kbr <kbr@chromium.org>
Date: Wed Nov 02 02:53:45 2016

Wait a few swaps to make Pixel_ScissorTestWithPreserveDrawingBuffer more robust.

Remove a stale failure expectation for this test.

BUG= 540039 ,  660461 
CQ_INCLUDE_TRYBOTS=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;master.tryserver.chromium.android:android_optional_gpu_tests_rel
TBR=zmo@chromium.org

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

[modify] https://crrev.com/d805f7422e548f673533dc36e39ab9f8429eb616/content/test/data/gpu/pixel_scissor.html
[modify] https://crrev.com/d805f7422e548f673533dc36e39ab9f8429eb616/content/test/gpu/gpu_tests/pixel_expectations.py

Comment 10 by kbr@chromium.org, Nov 2 2016

Owner: kbr@chromium.org
Status: Started (was: Available)

Comment 11 by kbr@chromium.org, Nov 4 2016

Here are the last 200 builds on these bots (the ATI one was renamed):

https://build.chromium.org/p/chromium.gpu/builders/Mac%2010.10%20Release%20%28Intel%29?numbuilds=200
https://build.chromium.org/p/chromium.gpu.fyi/builders/Mac%2010.10%20Release%20%28Intel%29?numbuilds=200
https://build.chromium.org/p/chromium.gpu.fyi/builders/Mac%2010.10%20Release%20%28AMD%29?numbuilds=200

The test's at least a lot less flaky, if the flakiness hasn't been completely eliminated. This build:

https://build.chromium.org/p/chromium.gpu.fyi/builders/Mac%2010.10%20Release%20%28Intel%29/builds/18820

is the only one on these three bots that had the same failure. It did run after my change landed:

https://build.chromium.org/p/chromium.gpu.fyi/builders/Mac%2010.10%20Release%20%28Intel%29/builds/18791

I'll mark it flaky on macOS too, which should at least give it 3 retries, and call this done.

Project Member

Comment 12 by bugdroid1@chromium.org, Nov 5 2016

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

commit 59bdfe8c171d957984104767996d2e6b26594121
Author: kbr <kbr@chromium.org>
Date: Sat Nov 05 00:39:04 2016

Mark Pixel_ScissorTestWithPreserveDrawingBuffer flaky on macOS.

Along with earlier changes to the test, this should eliminate failures
of this test on the bots.

BUG= 660461 
CQ_INCLUDE_TRYBOTS=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;master.tryserver.chromium.android:android_optional_gpu_tests_rel
TBR=zmo@chromium.org

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

[modify] https://crrev.com/59bdfe8c171d957984104767996d2e6b26594121/content/test/gpu/gpu_tests/pixel_expectations.py

Comment 13 by kbr@chromium.org, Nov 5 2016

Status: Fixed (was: Started)
Calling this fixed. If it flakes again we can re-investigate.

 Issue 662683  has been merged into this issue.

Sign in to add a comment