tast.video.PlaybackPerfH264 seems flaky with error: Cannot set property 'loop' of undefined |
||
Issue descriptionDevice: daisy, checll, celes and many others https://cros-goldeneye.corp.google.com/chromeos/healthmonitoring/testDetails?milestone=72&daysBack=30&testName=tast.video.PlaybackPerfH264 Failure: 10/21 16:26:12.976 INFO | utils:0287| [stdout] [16:26:12.362] Error at playback.go:88: Failed to collect performance values: failed to settle video looping: got exception: TypeError: Cannot set property 'loop' of undefined 10/21 16:26:12.977 INFO | utils:0287| [stdout] [16:26:12.362] Stack trace: 10/21 16:26:12.977 INFO | utils:0287| [stdout] Failed to collect performance values 10/21 16:26:12.977 INFO | utils:0287| [stdout] at chromiumos/tast/local/bundles/cros/video/playback.RunTest (playback.go:88) 10/21 16:26:12.977 INFO | utils:0287| [stdout] at chromiumos/tast/local/bundles/cros/video.PlaybackPerfH264 (playback_perf_h264.go:27) 10/21 16:26:12.977 INFO | utils:0287| [stdout] at chromiumos/tast/testing.(*Test).Run.func4 (test.go:189) 10/21 16:26:12.978 INFO | utils:0287| [stdout] at chromiumos/tast/testing.runAndRecover.func1 (stage.go:68) 10/21 16:26:12.978 INFO | utils:0287| [stdout] at runtime.goexit (asm_amd64.s:2361) 10/21 16:26:12.978 INFO | utils:0287| [stdout] failed to settle video looping 10/21 16:26:12.978 INFO | utils:0287| [stdout] at chromiumos/tast/local/bundles/cros/video/playback.measureWithConfig (playback.go:148) 10/21 16:26:12.978 INFO | utils:0287| [stdout] at chromiumos/tast/local/bundles/cros/video/playback.measure (playback.go:103) 10/21 16:26:12.978 INFO | utils:0287| [stdout] at chromiumos/tast/local/bundles/cros/video/playback.RunTest (playback.go:87) 10/21 16:26:12.978 INFO | utils:0287| [stdout] at chromiumos/tast/local/bundles/cros/video.PlaybackPerfH264 (playback_perf_h264.go:27) 10/21 16:26:12.978 INFO | utils:0287| [stdout] at chromiumos/tast/testing.(*Test).Run.func4 (test.go:189) 10/21 16:26:12.979 INFO | utils:0287| [stdout] at chromiumos/tast/testing.runAndRecover.func1 (stage.go:68) 10/21 16:26:12.979 INFO | utils:0287| [stdout] at runtime.goexit (asm_amd64.s:2361) 10/21 16:26:12.979 INFO | utils:0287| [stdout] got exception: TypeError: Cannot set property 'loop' of undefined 10/21 16:26:12.979 INFO | utils:0287| [stdout] at chromiumos/tast/local/chrome.(*Conn).doEval (conn.go:101) 10/21 16:26:12.979 INFO | utils:0287| [stdout] at chromiumos/tast/local/chrome.(*Conn).Exec (conn.go:54) 10/21 16:26:12.979 INFO | utils:0287| [stdout] at chromiumos/tast/local/bundles/cros/video/playback.measureWithConfig (playback.go:147) 10/21 16:26:12.980 INFO | utils:0287| [stdout] at chromiumos/tast/local/bundles/cros/video/playback.measure (playback.go:103) 10/21 16:26:12.980 INFO | utils:0287| [stdout] at chromiumos/tast/local/bundles/cros/video/playback.RunTest (playback.go:87) 10/21 16:26:12.980 INFO | utils:0287| [stdout] at chromiumos/tast/local/bundles/cros/video.PlaybackPerfH264 (playback_perf_h264.go:27) 10/21 16:26:12.980 INFO | utils:0287| [stdout] at chromiumos/tast/testing.(*Test).Run.func4 (test.go:189) 10/21 16:26:12.980 INFO | utils:0287| [stdout] at chromiumos/tast/testing.runAndRecover.func1 (stage.go:68) 10/21 16:26:12.980 INFO | utils:0287| [stdout] ... 10/21 16:26:13.826 INFO | utils:0287| [stdout] Completed test video.PlaybackPerfH264 in 29.56s with 1 error(s) According to the code: https://cs.corp.google.com/chromeos_public/src/platform/tast-tests/src/chromiumos/tast/local/bundles/cros/video/playback/playback.go?type=cs&q=playback.measureWithConfig+package:chromeos_public&g=0&l=147 It seems like "document.getElementsByTagName('video')[0]" sometimes may be failed to get the object (so is undefined?)
,
Oct 23
I'm not sure CDP guarantees anything about the state when NewConn is returned, so we should wait for the page to load. Here's my change for ui.ChromeLogin: https://chromium-review.googlesource.com/c/chromiumos/platform/tast-tests/+/1278509 However it was reverted due to flakiness ( crbug.com/895337 ). I'm investigating why.
,
Oct 23
Thanks, I was writing something similar. :-) Maybe it'd be useful if NewConn either waited for the page to load before returning or accepted an option that could be used to request this behavior. It'd be unfortunate if almost every test ended up with its own copy of code to wait.
,
Oct 23
I think I found the cause. Maybe we inspected document.readyState before navigation started, i.e. about:blank. I will update the chrome package. In the case of video playback test, I think it's better to wait for <video> to appear, rather than waiting for readyState, since it's not an usual HTML.
,
Oct 25
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform/tast-tests/+/f541f7b3facf06975bfc18264e4fa4b85abc642f commit f541f7b3facf06975bfc18264e4fa4b85abc642f Author: Hirokazu Honda <hiroh@chromium.org> Date: Thu Oct 25 11:26:38 2018 video.PlaybackPerf: Wait until video element is loaded in page Formerly, video.PlaybackPerf can have tried to access a video element before it is loaded. It fails the test due to the failure on accessing the video element. This change fixes the issue as the test waits for the video element loading. BUG= chromium:897588 , chromium:890733 TEST=video.PlaybackPerfH264 Change-Id: I285c62e0819f284f73f977fa3f29ac9aca9db3c8 Reviewed-on: https://chromium-review.googlesource.com/1297795 Commit-Ready: Hirokazu Honda <hiroh@chromium.org> Tested-by: Hirokazu Honda <hiroh@chromium.org> Reviewed-by: Dan Erat <derat@chromium.org> Reviewed-by: Shuhei Takahashi <nya@chromium.org> [modify] https://crrev.com/f541f7b3facf06975bfc18264e4fa4b85abc642f/src/chromiumos/tast/local/bundles/cros/video/playback/playback.go
,
Oct 29
The error no longer occurs after the CL was landed. |
||
►
Sign in to add a comment |
||
Comment 1 by hiroh@chromium.org
, Oct 23