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

Issue 595665 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: May 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug-Regression



Sign in to add a comment

Fix and re-enable media.tough_video_cases on Mac

Project Member Reported by petrcermak@chromium.org, Mar 17 2016

Issue description

Revision range first seen: https://build.chromium.org/p/chromium.perf/builders/Mac%20HDD%20Perf%20%285%29/builds/1011
Link to failing step log: https://build.chromium.org/p/chromium.perf/builders/Mac%20HDD%20Perf%20%285%29/builds/1011/steps/media.tough_video_cases/logs/stdio

The test is very flaky (17/20 failures in the recent builds: https://build.chromium.org/p/chromium.perf/builders/Mac%20HDD%20Perf%20(5)). I don't think the failure was caused by crrev.com/380987 because it's a patch for Courgette, which, as far as I know, is only used on Windows.

In all cases, the "video.html?src=smpte_3840x2160_60fps_vp9.webm" test case fails:


[ RUN      ] video.html?src=smpte_3840x2160_60fps_vp9.webm
(INFO) 2016-03-15 13:08:19,958 power._StopInternal:48  Attempting to stop non-running monitor
(INFO) 2016-03-15 13:08:20,393 power.Start:93  Start: PowerMetric running
Traceback (most recent call last):
  File "/b/build/slave/Mac_HDD_Perf__5_/build/src/third_party/catapult/telemetry/telemetry/internal/story_runner.py", line 84, in _RunStoryAndProcessErrorIfNeeded
    state.RunStory(results)
  File "/b/build/slave/Mac_HDD_Perf__5_/build/src/third_party/catapult/telemetry/telemetry/page/shared_page_state.py", line 323, in RunStory
    self._current_page.Run(self)
  File "/b/build/slave/Mac_HDD_Perf__5_/build/src/third_party/catapult/telemetry/telemetry/page/__init__.py", line 88, in Run
    self.RunPageInteractions(action_runner)
  File "/b/build/slave/Mac_HDD_Perf__5_/build/src/tools/perf/page_sets/tough_video_cases.py", line 499, in RunPageInteractions
    self.SeekBeforeAndAfterPlayhead(action_runner)
  File "/b/build/slave/Mac_HDD_Perf__5_/build/src/tools/perf/page_sets/tough_video_cases.py", line 36, in SeekBeforeAndAfterPlayhead
    label='seek_cold')
  File "/b/build/slave/Mac_HDD_Perf__5_/build/src/third_party/catapult/telemetry/telemetry/page/action_runner.py", line 634, in SeekMedia
    log_time=log_time, label=label))
  File "/b/build/slave/Mac_HDD_Perf__5_/build/src/third_party/catapult/telemetry/telemetry/page/action_runner.py", line 44, in _RunAction
    action.RunAction(self._tab)
  File "/b/build/slave/Mac_HDD_Perf__5_/build/src/third_party/catapult/telemetry/telemetry/internal/actions/seek.py", line 47, in RunAction
    self._timeout_in_seconds)
  File "/b/build/slave/Mac_HDD_Perf__5_/build/src/third_party/catapult/telemetry/telemetry/internal/actions/media_action.py", line 40, in WaitForEvent
    timeout=timeout_in_seconds)
  File "/b/build/slave/Mac_HDD_Perf__5_/build/src/third_party/catapult/telemetry/telemetry/core/util.py", line 94, in WaitFor
    (timeout, GetConditionString()))
TimeoutException: Timed out while waiting 60s for util.WaitFor(lambda:
                     self.HasEventCompletedOrError(tab, selector, event_name),
                 timeout=timeout_in_seconds).

(INFO) 2016-03-15 13:09:53,987 power.Close:104  Closing power monitors
(INFO) 2016-03-15 13:09:53,987 platform.IsMonitoringPower:299  IsMonitoringPower: True
(WARNING) 2016-03-15 13:09:53,988 powermetrics_power_monitor._KillPowerMetricsProcess:248  Error when trying to terminate powermetric process: OSError(1, 'Operation not permitted')
(INFO) 2016-03-15 13:09:54,186 powermetrics_power_monitor.ParsePowerMetricsOutput:202  Field missing from powermetrics output: ['processor', 'packages', 0, 'c_state_ratio']
(INFO) 2016-03-15 13:09:54,186 powermetrics_power_monitor.ParsePowerMetricsOutput:202  Field missing from powermetrics output: ['processor', 'packages', 0, 'cores', 0, 'c_state_ratio']
(INFO) 2016-03-15 13:09:54,186 powermetrics_power_monitor.ParsePowerMetricsOutput:202  Field missing from powermetrics output: ['processor', 'packages', 0, 'cores', 1, 'c_state_ratio']
[  FAILED  ] video.html?src=smpte_3840x2160_60fps_vp9.webm (94717 ms)


In a few of the 17 failing builds (e.g. https://build.chromium.org/p/chromium.perf/builders/Mac%20HDD%20Perf%20%285%29/builds/1011/steps/media.tough_video_cases/logs/stdio), there were other failures in the same benchmark as well.

Next steps:
  1. I'll disable the test per the perf bot sheriffing guide (https://chromium.googlesource.com/chromium/src/+/master/tools/perf/docs/perf_bot_sheriffing.md#testfailures)
  2. Once the test is disabled, I'll downgrade this bug to Pri-2 and assign it to the test owner.
  3. I'll run a return code bisect to try to find the culprit.
 
Here's the correct link to the failing bot: https://build.chromium.org/p/chromium.perf/builders/Mac%20HDD%20Perf%20(5)
Project Member

Comment 3 by bugdroid1@chromium.org, Mar 17 2016

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

commit f6cf0cb1501ea3e08b196943d754c3df049a052a
Author: petrcermak <petrcermak@chromium.org>
Date: Thu Mar 17 12:33:52 2016

Disable media.tough_video_cases on Mac

The benchmark is causing lots of test failures on the "Mac HDD Perf (5)"
perf bot (see the associated bug).

BUG= 595665 
TBR=skyostil
CQ_EXTRA_TRYBOTS=tryserver.chromium.perf:android_s5_perf_cq;tryserver.chromium.perf:winx64_10_perf_cq;tryserver.chromium.perf:mac_retina_perf_cq;tryserver.chromium.perf:linux_perf_cq

Review URL: https://codereview.chromium.org/1807183002

Cr-Commit-Position: refs/heads/master@{#381695}

[modify] https://crrev.com/f6cf0cb1501ea3e08b196943d754c3df049a052a/tools/perf/benchmarks/media.py

Cc: -prabhur@chromium.org petrcermak@chromium.org
Labels: -Pri-1 Pri-2
Owner: prabhur@chromium.org
Summary: Fix media.tough_video_cases failure and re-enable it on Mac (was: media.tough_video_cases failure on chromium.perf from 380987 onwards)
The benchmark is now disabled, so I'm lowering this bug's priority and assigning it to the benchmark owner.

Note that the bisect is still running.
Owner: sande...@chromium.org
prabhur@ doesn't work on Videostack anymore.
Project Member

Comment 6 by 42576172...@developer.gserviceaccount.com, Mar 18 2016


===== BISECT JOB RESULTS =====
Status: completed


===== SUSPECTED CL(s) =====
Subject : [Courgette] Clean up Disassembler; fix ELF Memory leaks.
Author  : huangs
Commit description:
  
Cleaning up code surrounding Disassembler:
- Extract AddressTranslator interface to be used across subclasses.
- Use FileOffset = size_t by context.
- Detailed comments & TODOs in DisassemblerElf32ARM.
- Fix DisassemblerElf32ARM memory leaks.
- Lots of superficial stylistic changes.

Except for AddressTranslator routines and unit tests, shying away
from control flow and logic changes.

BUG= 579206 

Committed: https://crrev.com/58b822d441f5c982e879e536fa3c1cbac8fd339a
Cr-Commit-Position: refs/heads/master@{#380881}

Review URL: https://codereview.chromium.org/1676683002

Cr-Commit-Position: refs/heads/master@{#380987}
Commit  : dda11d069213d53aef9bf3bc018b02f3aef7177b
Date    : Mon Mar 14 16:37:34 2016


===== TESTED REVISIONS =====
Revision                Exit Code   Std. Dev.   Num Values  Good?
chromium@380887         1           N/A         5           good
chromium@380937         1           N/A         5           good
chromium@380962         1           N/A         5           good
chromium@380975         1           N/A         5           good
chromium@380981         1           N/A         5           good
chromium@380984         1           N/A         5           good
chromium@380986         1           N/A         5           good
chromium@380987         1           N/A         5           bad

Bisect job ran on: mac_hdd_perf_bisect
Bug ID: 595665

Test Command: src/tools/perf/run_benchmark -v --browser=release --output-format=chartjson --also-run-disabled-tests media.tough_video_cases
Test Metric: idle_wakeups_total/video.html?src_smpte_3840x2160_60fps_vp9.webm
Relative Change: 0.00%
Score: 0.0

Buildbot stdio: http://build.chromium.org/p/tryserver.chromium.perf/builders/mac_hdd_perf_bisect/builds/451
Job details: https://chromeperf.appspot.com/buildbucket_job_status/9017945617270392848


| O O | Visit http://www.chromium.org/developers/speed-infra/perf-bug-faq
|  X  | for more information addressing perf regression bugs. For feedback,
| / \ | file a bug with label Cr-Tests-AutoBisect.  Thank you!
Summary: Fix and re-enable media.tough_video_cases on Mac (was: Fix media.tough_video_cases failure and re-enable it on Mac)
Bot health sheriff ping; this test is still disabled.

According to the original post, the test was flaky but didn't fail 100% of the time, and it failed with a timeout.
Cc: qyears...@chromium.org crouleau@chromium.org
If the Page36 test (see src/tools/perf/tough_video_cases.py line 488) is the only test that has problems, then perhaps it would make sense to simply remove it for now (with a TODO), so that the rest of the pages can be reenabled. The Page36 test is 4k 60fps VP9 video, so it makes sense that it's having problems. 

Removing Page36 would be as easy as deleting the line: 

self.AddStory(Page36(self))

in src/tools/perf/page_sets/tough_video_cases.py line 579. 

Another idea would be to refactor the toughest tough video cases into a separate page set, and make a new benchmark for it. Here's an example: In https://codereview.chromium.org/1612333002 they break up a pageset and a benchmark into two pagesets and two benchmarks. One possibility would be to include the easier, less likely to be flaky pages in one pageset/benchmark so that they can all be reenabled, and then include the more difficult benchmarks in the separate pageset/benchmark.

petrcermak@, qyearsley@, does this seem reasonable?
Both of those options (1, removing that page and adding a TODO and and an associated bug and then reenabling the test sounds; 2, make a separate "easier" page set) sound reasonable to me.

I guess it's up to what makes sense in terms of what we want to test in the future -- if there's not a lot of long-term value in separately measuring the "easier" page set, then the first option is probably better.

Note that removing one page will change the average, which will likely cause a false positive alert (which isn't a problem, but you should note this in the description of the CL which removes the pate)
Project Member

Comment 10 by bugdroid1@chromium.org, May 10 2016

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

commit 65d76370288406e505db5efe99298e5266b4f742
Author: sandersd <sandersd@chromium.org>
Date: Tue May 10 19:29:26 2016

Re-enable media.tough_video_cases on Mac

This CL bumps the timeouts for 4k playback to reduce flakiness on Mac.

BUG= 595665 
CQ_EXTRA_TRYBOTS=tryserver.chromium.perf:android_s5_perf_cq;tryserver.chromium.perf:winx64_10_perf_cq;tryserver.chromium.perf:mac_retina_perf_cq;tryserver.chromium.perf:linux_perf_cq

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

[modify] https://crrev.com/65d76370288406e505db5efe99298e5266b4f742/tools/perf/benchmarks/media.py
[modify] https://crrev.com/65d76370288406e505db5efe99298e5266b4f742/tools/perf/page_sets/tough_video_cases.py

Status: Fixed (was: Assigned)

Sign in to add a comment