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

Issue 664196 link

Starred by 4 users

Issue metadata

Status: Archived
Owner:
Last visit > 30 days ago
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug-Regression



Sign in to add a comment

blink_perf telemetry benchmarks no longer working with Chrome OS

Project Member Reported by stephen....@arm.com, Nov 10 2016

Issue description

UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/53.0.2785.143 Chrome/53.0.2785.143 Safari/537.36
Platform: veyron_minnie

Steps to reproduce the problem:
1. Check out chromium sources
2. cd to src/tools/perf
3. Run: ./run_benchmarks --browser=cros-chrome --remote=<location of a chromebook running a test image> blink_perf.svg --output-format=json

What is the expected behavior?
The blink_perf SVG benchmark should run on the chromebook via Telemetry and return successfully.

What went wrong?
The benchmark is not loaded, because the chromebook is unable to connect to 127.0.0.1.

Commit 85e79ec2557c6189b556cf64b438dc8f1af7d0ac of third_party/catapult disabled the SSH forwarding of the MemoryCacheHTTPServer port to the chromebook, which is how benchmarks like blink_perf were hosted. The commit message mentions that all benchmarks should go via ts_proxy now.

ts_proxy is still working, and the browser is configured to use the correct port for it, which is also forwarded over SSH. However, it seems like Chrome is refusing to use the proxy server when accessing 127.0.0.1 or localhost, on Chrome OS. If you change the URL that MemoryCacheHTTPServer reports for Telemetry to use to access the benchmark to anything that isn't localhost (but with the same port), then it hits the proxy server. Since the ts_proxy is configured to redirect everything to localhost anyway, it reaches the MemoryCacheHTTPServer and accesses the benchmark.

It's not clear if this is expected behaviour of Chrome on Chrome OS - should requests to localhost/127.0.0.1 use the proxy server or not? And if they shouldn't, Telemetry needs to be changed to host the blink_perf benchmarks correctly again.

Did this work before? Yes Chromium src prior to commit 9dc1b183cbad899d12728646cf2353e6d3ebff22 (Fri Nov 4 20:16:09 2016 -0700) (Roll src/third_party/catapult/ 3660f3bfa..85e79ec25 (1 commit).)

Chrome version: 56.0.2915.0  Channel: n/a
OS Version: 
Flash Version:
 
Status: Available (was: Unconfirmed)
Cc: nedngu...@google.com jbudorick@chromium.org
AFAIK requests to 127.0.0.1 should use the proxy server.

+Ned, who's more familiar w/ ts_proxy and telemetry in general.
Cc: achuith@chromium.org
+Achuith: are you running this test on your lab?
Owner: bccheng@chromium.org
Status: Assigned (was: Available)
Not sure. Ben, can you take a look?
Components: Tests>Telemetry
Hi,

So on ChromeOS it seems to be intentional that requests to localhost, etc bypass the proxy server, see e1575b4ba86423bedca6bc6d4c4f8c8c021ed72a

Do we know if this workaround is still needed 6 years later?
Project Member

Comment 7 by bugdroid1@chromium.org, Aug 3 2017

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

commit 872164a1e9d8557a2a0802be47da587ce4817f94
Author: Achuith Bhandarkar <achuith@chromium.org>
Date: Thu Aug 03 20:00:50 2017

Fixes for blink_perf tests

* browser_type may not be specified in blink_perf.py
* WebKit/PerformanceTests/TestData, and WebKit/PerformanceTests/SVG are
necessary.
* Get rid of bogus svn links.

BUG= chromium:664196 ,chromium:651219, chromium:749868 
TEST=manual

Change-Id: Idd5fbbb32e01f88a21f37e8e55a288f86a776f89
Reviewed-on: https://chromium-review.googlesource.com/599018
Reviewed-by: Ned Nguyen <nednguyen@google.com>
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
Cr-Commit-Position: refs/heads/master@{#491822}
[modify] https://crrev.com/872164a1e9d8557a2a0802be47da587ce4817f94/tools/perf/benchmarks/blink_perf.py
[modify] https://crrev.com/872164a1e9d8557a2a0802be47da587ce4817f94/tools/perf/bootstrap_deps

Comment 8 by stephen....@arm.com, Aug 30 2017

I didn't see how the fix mentioned in #7 actually addresses this bug.

However, a patch that landed in catapult on Monday Aug 28 2017 does seem to have resolved this issue: https://chromium.googlesource.com/external/github.com/catapult-project/catapult/+/1075e5dc8bc2ef383e67391639b0a23eed9f3546
Status: Fixed (was: Assigned)
So before the fix in #7 landed, we were missing data in these 2 directories, which are needed for running blink_perf tests:
src/third_party/WebKit/PerformanceTests/TestData
src/third_party/WebKit/PerformanceTests/SVG

But even with this, the test was not passing, but looks like cywang@'s CL fixed the remaining issue.
Actually the fix in #7 is only needed to run the test locally on the device. If you use --remote, you don't need it

Comment 11 by dchan@chromium.org, Jan 22 2018

Status: Archived (was: Fixed)

Sign in to add a comment