Issue metadata
Sign in to add a comment
|
GPU tests with screenshots hangs on Win10 NVidia bots (Release and Debug) |
||||||||||||||||||||||
Issue descriptionhttps://ci.chromium.org/buildbot/chromium.gpu.fyi/Win10%20Release%20%28NVIDIA%29/ https://ci.chromium.org/buildbot/chromium.gpu.fyi/Win10%20Debug%20%28NVIDIA%29/ This includes maps_pixel_test, pixel_test, and screenshot_sync_tests
,
Jan 9 2018
zmo's blamelist above was from this build: https://ci.chromium.org/buildbot/chromium.gpu.fyi/Win10%20Release%20%28NVIDIA%29/4547 We believe this is the most likely culprit CL: https://chromium-review.googlesource.com/854736 Looking at the most recent one on this bot: https://ci.chromium.org/buildbot/chromium.gpu.fyi/Win10%20Release%20%28NVIDIA%29/4551 here is the shard for maps_pixel_test: https://chromium-swarm.appspot.com/task?id=3af4b462ad385c10&refresh=10&show_raw=1 Here's the command line that was run: c:\infra-system\bin\python.exe ..\..\testing\scripts\run_gpu_integration_test_as_googletest.py ../../content/test/gpu/run_gpu_integration_test.py maps --show-stdout --browser=release --passthrough -v --extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --dont-restore-color-profile-after-test --os-type win --build-revision 8d268d267d4cde92013a5189033ec61ff47d2625 --test-machine-name Win10 Release (NVIDIA) --isolated-script-test-output=c:\b\s\w\iofb1sta\output.json --isolated-script-test-perf-output=c:\b\s\w\iofb1sta\perftest-output.json zmo@ and I had a hard time reproducing this locally (not on the bot), though it did actually repro on the bot by clicking the "Debug" button at the top of this page: https://chromium-swarm.appspot.com/task?id=3af4b462ad385c10&refresh=10&show_raw=1 and then using the Raritan to log on to the bot. The symptom is that the window is all white. Minimizing and unminimizing the window makes it render correctly, and the test pass. The test is failing to capture the screenshot, so we think something is broken in the on-screen (DirectComposition?) display path and screenshots. Traceback (most recent call last): _RunGpuTest at content\test\gpu\gpu_tests\gpu_integration_test.py:132 self.RunActualGpuTest(url, *args) RunActualGpuTest at content\test\gpu\gpu_tests\maps_integration_test.py:108 screenshot = tab.Screenshot(5) traced_function at third_party\catapult\common\py_trace_event\py_trace_event\trace_event_impl\decorators.py:52 return func(*args, **kwargs) Screenshot at third_party\catapult\telemetry\telemetry\internal\browser\tab.py:121 return self._inspector_backend.Screenshot(timeout) traced_function at third_party\catapult\common\py_trace_event\py_trace_event\trace_event_impl\decorators.py:52 return func(*args, **kwargs) Inner at third_party\catapult\telemetry\telemetry\internal\backends\chrome_inspector\inspector_backend.py:41 inspector_backend._ConvertExceptionFromInspectorWebsocket(e) traced_function at third_party\catapult\common\py_trace_event\py_trace_event\trace_event_impl\decorators.py:52 return func(*args, **kwargs) Inner at third_party\catapult\telemetry\telemetry\internal\backends\chrome_inspector\inspector_backend.py:38 return func(inspector_backend, *args, **kwargs) Screenshot at third_party\catapult\telemetry\telemetry\internal\backends\chrome_inspector\inspector_backend.py:153 return self._page.CaptureScreenshot(timeout) CaptureScreenshot at third_party\catapult\telemetry\telemetry\internal\backends\chrome_inspector\inspector_page.py:153 res = self._inspector_websocket.SyncRequest(request, timeout) SyncRequest at third_party\catapult\telemetry\telemetry\internal\backends\chrome_inspector\inspector_websocket.py:116 res = self._Receive(timeout) _Receive at third_party\catapult\telemetry\telemetry\internal\backends\chrome_inspector\inspector_websocket.py:155 data = self._socket.recv() recv at third_party\catapult\telemetry\third_party\websocket-client\websocket\_core.py:293 opcode, data = self.recv_data() recv_data at third_party\catapult\telemetry\third_party\websocket-client\websocket\_core.py:310 opcode, frame = self.recv_data_frame(control_frame) recv_data_frame at third_party\catapult\telemetry\third_party\websocket-client\websocket\_core.py:323 frame = self.recv_frame() recv_frame at third_party\catapult\telemetry\third_party\websocket-client\websocket\_core.py:357 return self.frame_buffer.recv_frame() recv_frame at third_party\catapult\telemetry\third_party\websocket-client\websocket\_abnf.py:336 self.recv_header() recv_header at third_party\catapult\telemetry\third_party\websocket-client\websocket\_abnf.py:286 header = self.recv_strict(2) recv_strict at third_party\catapult\telemetry\third_party\websocket-client\websocket\_abnf.py:371 bytes_ = self.recv(min(16384, shortage)) _recv at third_party\catapult\telemetry\third_party\websocket-client\websocket\_core.py:427 return recv(self.sock, bufsize) recv at third_party\catapult\telemetry\third_party\websocket-client\websocket\_socket.py:83 raise WebSocketTimeoutException(message) We are going to try reverting the following two CLs to see if the bot goes green again: https://chromium-review.googlesource.com/854736 https://chromium-review.googlesource.com/854953
,
Jan 9 2018
I am looking at the Screen snapshot code and see where it could get stuck. Then I came across this piece of code:
void RenderViewImpl::OnForceRedraw(const ui::LatencyInfo& latency_info) {
if (RenderWidgetCompositor* rwc = compositor()) {
rwc->QueueSwapPromise(
std::make_unique<AlwaysDrawSwapPromise>(latency_info));
rwc->SetNeedsForcedRedraw();
}
}
So if here compositor() returns null, then it could get stuck forever. At least we should fail more gracefully with an error message or something.
,
Jan 9 2018
To possibly reproduce: build Release on Windows 10, and cd into out\Release. Then run: python.exe ..\..\testing\scripts\run_gpu_integration_test_as_googletest.py ../../content/test/gpu/run_gpu_integration_test.py maps --show-stdout --browser=release --passthrough -v "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc" --dont-restore-color-profile-after-test --os-type win --build-revision 8d268d267d4cde92013a5189033ec61ff47d2625 --test-machine-name "Win10 Release (NVIDIA)" --isolated-script-test-output=output.json --isolated-script-test-perf-output=perftest-output.json
,
Jan 9 2018
Fady said he's got it reproducing locally. Thank you Fady for picking this up so quickly. Assigning.
,
Jan 24 2018
|
|||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||
Comment 1 by zmo@chromium.org
, Jan 9 2018