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

Issue 678338 link

Starred by 2 users

Issue metadata

Status: WontFix
Owner: ----
Closed: Oct 9
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug

Blocked on:
issue 692706

Blocking:
issue 682303
issue 687583


Participants' hotlists:
speed-binarysize-backlog
speed-bisect


Sign in to add a comment

Perf bisects do not work for resource_sizes alerts

Project Member Reported by agrieve@chromium.org, Jan 4 2017

Issue description

Take a look at alerts on this graph:
https://chromeperf.appspot.com/report?sid=583a1190684356d6bf05c460ee88095add80c49e2de98a1bdc960662fe6afb2c&num_points=1500

All bisects fail with:
===== BISECT JOB RESULTS =====
Status: failed


=== Bisection aborted ===
The bisect was aborted because Bisect cannot identify a culprit: Testing the "good" revision failed: Test runs failed to produce output.
Please contact the the team (see below) if you believe this is in error.

===== TESTED REVISIONS =====
Revision  Mean  Std Dev  N  Good?

Bisect job ran on: android_nexus7_perf_bisect
Bug ID: 678309

Test Command: src/tools/perf/run_benchmark -v --browser=android-chromium --output-format=chartjson --upload-results --pageset-repeat=1 --also-run-disabled-tests --story-filter=normalized.apk.size resource_sizes (MonochromePublic.apk)
Test Metric: MonochromePublic.apk_Specifics/normalized apk size
Relative Change: None

Buildbot stdio: http://build.chromium.org/p/tryserver.chromium.perf/builders/android_nexus7_perf_bisect/builds/3575
Job details: https://chromeperf.appspot.com/buildbucket_job_status/8991373559416019520




From the email, I'd guess the problem is that the command being run is "run_benchmark" as opposed to resource_sizes.py (or on the bots, it's run through test_runner.py)
 
Yeah that command is generated on the dashboard, this might just be a case of teaching /start_try_job to guess the right command.
Cc: hablich@chromium.org yangguo@chromium.org machenb...@chromium.org
Cc: -machenb...@chromium.org -yangguo@chromium.org -hablich@chromium.org sullivan@chromium.org
Components: Infra>Client>Perf
Status: Assigned (was: Available)
Not sure what I could do here... already has the right owner.
Blocking: 682303
Components: Speed>Bisection
Blocking: 687583
Labels: Performance-Browser
Labels: binary-size
Project Member

Comment 9 by bugdroid1@chromium.org, Mar 15 2017

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

commit 0b892c73358a61652e8986572841387f26328666
Author: catapult-deps-roller <catapult-deps-roller@chromium.org>
Date: Wed Mar 15 19:51:57 2017

Roll src/third_party/catapult/ e9f547be0..4226576b1 (15 commits)

https://chromium.googlesource.com/external/github.com/catapult-project/catapult.git/+log/e9f547be045d..4226576b1dc7

$ git log e9f547be0..4226576b1 --date=short --no-merges --format='%ad %ae %s'
2017-03-15 rnephew [Systrace][BattOr] Simplify BattOr options in systrace.
2017-03-15 simonhatch Dashboard - Make graph_revisions.AddRowsToCache faster.
2017-03-15 sunjian Replace History::pushState and Location::setHash with FrameLoader::updateForSameDocumentNavigation.
2017-03-15 nednguyen Revert of [Telemetry] Remove code that handle --browser=any (patchset #1 id:1 of https://codereview.chromium.org/2750463004/ )
2017-03-14 benjhayden Delete "merged to" diagnostics.
2017-03-14 benjhayden Add tr-v-ui-histogram-set-controls.
2017-03-14 benjhayden Do not auto-open histograms in singular rows.
2017-03-14 sullivan Add 'AsDict' methods to benchmark health report entities.
2017-03-14 jessimb Brings the anomalies into Release Notes.
2017-03-14 simonhatch Was out of date and didn't work properly. Note that this still won't work until we roll the latest changes from staging to prod in the bisect recipe.
2017-03-14 benjhayden Add HistogramSetConfiguration MVC Model.
2017-03-14 benjhayden Refactor HistogramSetTableRow using a recursive iterator.
2017-03-14 benjhayden Move NullBrushingStateController to its own file.
2017-03-14 cwallez gpu_info: Remove some no longer collected values
2017-03-14 nednguyen [Telemetry] Remove code that handle --browser=any

Created with:
  roll-dep src/third_party/catapult
BUG= 678338 

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, see:
http://www.chromium.org/developers/tree-sheriffs/sheriff-details-chromium#TOC-Failures-due-to-DEPS-rolls

CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_optional_gpu_tests_rel
TBR=catapult-sheriff@chromium.org

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

[modify] https://crrev.com/0b892c73358a61652e8986572841387f26328666/DEPS

Status: Fixed (was: Assigned)
Status: Assigned (was: Fixed)
Certainly better, but not quite fixed yet. Now it seems bisects come back with "tests failed to produce values". E.g.:

https://bugs.chromium.org/p/chromium/issues/detail?id=703121#c5
Oops sorry, I had kicked off this one: https://build.chromium.org/p/tryserver.chromium.perf/builders/android_nexus5X_perf_bisect/builds/1365

And it seemed to have picked up the values, I'll look at why your bisect isn't working.
Ok it looks like resource_sizes expects to be called with CWD=/src, will try to follow up with patch soon.
Whoop! That shouldn't be the case. Looks like that was actually just broken a few weeks ago by: https://codereview.chromium.org/2706243013

Here's a fix: https://codereview.chromium.org/2761883002
Awesome thanks :D I'll try another bisect once that lands.
Project Member

Comment 17 by bugdroid1@chromium.org, Mar 20 2017

We'll have to wait for a few revisions to pass before testing, otherwise bisect will sync to a revision with a broken resource_sizes.
https://build.chromium.org/p/tryserver.chromium.perf/builders/android_nexus7_perf_bisect/builds/3793

Success! Was able to extract the proper values when bisecting on MonochromePublic.apk.
Here's one that failed afterwards:
https://bugs.chromium.org/p/chromium/issues/detail?id=704181

I'm guessing it failed because no single commit caused a jump beyond the alert threshold. Still though, it would be useful to get the test results from all of the commits within the roll that it tried. 

Do you know if those are stored anywhere?
Looks like it tried to bisect the v8 roll but had some problems with the builds it got. Specifically, resource_sizes was failing with this error:

Traceback (most recent call last):
  File "/b/c/b/android_nexus7_perf_bisect/src/build/android/resource_sizes.py", line 745, in <module>
    sys.exit(main())
  File "/b/c/b/android_nexus7_perf_bisect/src/build/android/resource_sizes.py", line 734, in main
    PrintPakAnalysis(args.apk, args.min_pak_resource_size)
  File "/b/c/b/android_nexus7_perf_bisect/src/build/android/resource_sizes.py", line 525, in PrintPakAnalysis
    resource_id_name_map, resources_id_header_map = _AnnotatePakResources()
  File "/b/c/b/android_nexus7_perf_bisect/src/build/android/resource_sizes.py", line 568, in _AnnotatePakResources
    assert grit_headers, 'Failed to find grit headers in %s' % out_dir

So the way the bisect works is when it needs to bisect rolls like v8, it specifies some deps overrides and sends them over to  a set of bisect builders (https://build.chromium.org/p/tryserver.chromium.perf/builders/android_perf_bisect_builder). Maybe they build slightly differently from the normal chromium perf builders (https://build.chromium.org/p/chromium.perf/builders/Android%20Builder)?
Interesting...

Looked at a couple random jobs, and it looks like they just build & upload the build result (which has a filter to exclude out/gen). So likely that's what caused it to fail.

Another odd thing though, is that this one:
https://bugs.chromium.org/p/chromium/issues/detail?id=705416

it claims to have succeeded, but then just blamed a roll rather than trying to drill in.

I'm happy to just leave this as broken for a while longer, as I think a better fix would involve being more intelligent about how we look at pak file sizes:
https://bugs.chromium.org/p/chromium/issues/detail?id=692706
Blockedon: 692706
Labels: -binary-size Performance-Size
We'll likely never add this to the recipe bisect, agrieve@ do you think you'd want this in Pinpoint at some point? Otherwise we can close this out.
Owner: ----
Status: Available (was: Assigned)
Status: WontFix (was: Available)
This would be a nice-to-have to figure which commits within rolls cause regressions, but it's also something we can easily live without.

Sign in to add a comment