diff options
author | tonyg@chromium.org <tonyg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-18 20:09:32 +0000 |
---|---|---|
committer | tonyg@chromium.org <tonyg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-18 20:09:32 +0000 |
commit | 70fcbab8ec676d67684a20c17aa7043d1a2d7402 (patch) | |
tree | 3f8dec912c7c3a297fe89a59177bbfca17a2a053 /tools | |
parent | 70ff25dc41a6a3c06e1b18ead3af394a23861b95 (diff) | |
download | chromium_src-70fcbab8ec676d67684a20c17aa7043d1a2d7402.zip chromium_src-70fcbab8ec676d67684a20c17aa7043d1a2d7402.tar.gz chromium_src-70fcbab8ec676d67684a20c17aa7043d1a2d7402.tar.bz2 |
Revert of [Telemetry] Fix a flake in android browser finder. (https://codereview.chromium.org/394423002/)
Reason for revert:
BUG=395228
Original issue's description:
> [Telemetry] Fix a flake in android browser finder.
>
> Traceback (most recent call last):
> File "tools/perf/../telemetry/telemetry/decorators.py", line 50, in wrapper
> func(*args, **kwargs)
> File "/b/build/slave/Android_Tests/build/src/tools/perf/benchmarks/benchmark_unittest.py", line 51, in BenchmarkSmokeTest
> self.assertEqual(0, SinglePageBenchmark().Run(options),
> File "tools/perf/../telemetry/telemetry/benchmark.py", line 84, in Run
> results = page_runner.Run(test, ps, expectations, args)
> File "tools/perf/../telemetry/telemetry/page/page_runner.py", line 346, in Run
> possible_browser = browser_finder.FindBrowser(finder_options)
> File "tools/perf/../telemetry/telemetry/decorators.py", line 26, in Cacher
> cache[key] = obj(*args, **kwargs)
> File "tools/perf/../telemetry/telemetry/core/browser_finder.py", line 73, in FindBrowser
> curr_browsers = finder.FindAllAvailableBrowsers(options)
> File "tools/perf/../telemetry/telemetry/core/backends/chrome/android_browser_finder.py", line 214, in FindAllAvailableBrowsers
> pids = [p.pid for p in psutil.process_iter() if 'adb' in p.name]
> File "/usr/lib/python2.7/dist-packages/psutil/__init__.py", line 161, in name
> cmdline = self.cmdline
> File "/usr/lib/python2.7/dist-packages/psutil/__init__.py", line 188, in cmdline
> return self._platform_impl.get_process_cmdline()
> File "/usr/lib/python2.7/dist-packages/psutil/_pslinux.py", line 327, in wrapper
> raise NoSuchProcess(self.pid, self._process_name)
> NoSuchProcess: process no longer exists (pid=13764)
>
> Observed here:
> http://build.chromium.org/p/chromium.linux/builders/Android%20Tests/builds/14626/steps/telemetry_perf_unittests/logs/stdio
>
> BUG=
>
> Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=284144
TBR=dtu@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/407633002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@284187 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools')
-rw-r--r-- | tools/telemetry/telemetry/core/backends/chrome/android_browser_finder.py | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/tools/telemetry/telemetry/core/backends/chrome/android_browser_finder.py b/tools/telemetry/telemetry/core/backends/chrome/android_browser_finder.py index ec76125..f0a5ae5 100644 --- a/tools/telemetry/telemetry/core/backends/chrome/android_browser_finder.py +++ b/tools/telemetry/telemetry/core/backends/chrome/android_browser_finder.py @@ -19,11 +19,6 @@ from telemetry.core.backends import adb_commands from telemetry.core.backends.chrome import android_browser_backend from telemetry.core.platform import android_platform_backend -try: - import psutil # pylint: disable=F0401 -except ImportError: - psutil = None - CHROME_PACKAGE_NAMES = { 'android-content-shell': @@ -212,15 +207,19 @@ def FindAllAvailableBrowsers(finder_options, logging=real_logging): # Ignore result. adb.EnableAdbRoot() - if psutil: - # Host side workaround for crbug.com/268450 (adb instability). + if sys.platform.startswith('linux'): + # Host side workaround for crbug.com/268450 (adb instability) # The adb server has a race which is mitigated by binding to a single core. - for proc in psutil.process_iter(): - try: - if 'adb' in proc.name: - proc.set_cpu_affinity([0]) - except (psutil.NoSuchProcess, psutil.AccessDenied): - logging.warn('Failed to set adb process CPU affinity') + import psutil # pylint: disable=F0401 + pids = [p.pid for p in psutil.process_iter() if 'adb' in p.name] + with open(os.devnull, 'w') as devnull: + for pid in pids: + ret = subprocess.call(['taskset', '-p', '-c', '0', str(pid)], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + stdin=devnull) + if ret: + logging.warn('Failed to taskset %d (%s)', pid, ret) if not os.environ.get('BUILDBOT_BUILDERNAME'): # Killing adbd before running tests has proven to make them less likely to |