Commit 4ac27001 authored by sadrul@chromium.org's avatar sadrul@chromium.org

Revert 284832 because it broke Android Tests with the following error:

  FindAllAvailableBrowsers at tools/telemetry/telemetry/core/backends/chrome/android_browser_finder.py:224
      proc.set_cpu_affinity([0])  # Older versions.
  AttributeError: 'Process' object has no attribute 'set_cpu_affinity'

> Reland: [Telemetry] Fix a flake in android browser finder.
> 
> This is the same as before, except that we now support older and newer versions
> of psutil.
> 
> BUG=395228
> 
> patch from issue 394423002
> 
> Review URL: https://codereview.chromium.org/407253002

TBR=tonyg@chromium.org

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@284848 0039d316-1c4b-4281-b951-d872f2087c98
parent 869b4258
...@@ -19,11 +19,6 @@ from telemetry.core.backends import adb_commands ...@@ -19,11 +19,6 @@ from telemetry.core.backends import adb_commands
from telemetry.core.backends.chrome import android_browser_backend from telemetry.core.backends.chrome import android_browser_backend
from telemetry.core.platform import android_platform_backend from telemetry.core.platform import android_platform_backend
try:
import psutil # pylint: disable=F0401
except ImportError:
psutil = None
CHROME_PACKAGE_NAMES = { CHROME_PACKAGE_NAMES = {
'android-content-shell': 'android-content-shell':
...@@ -212,18 +207,19 @@ def FindAllAvailableBrowsers(finder_options, logging=real_logging): ...@@ -212,18 +207,19 @@ def FindAllAvailableBrowsers(finder_options, logging=real_logging):
# Ignore result. # Ignore result.
adb.EnableAdbRoot() adb.EnableAdbRoot()
if psutil: if sys.platform.startswith('linux'):
# Host side workaround for crbug.com/268450 (adb instability). # Host side workaround for crbug.com/268450 (adb instability)
# The adb server has a race which is mitigated by binding to a single core. # The adb server has a race which is mitigated by binding to a single core.
for proc in psutil.process_iter(): import psutil # pylint: disable=F0401
try: pids = [p.pid for p in psutil.process_iter() if 'adb' in p.name]
if 'adb' in proc.name: with open(os.devnull, 'w') as devnull:
if hasattr(proc, 'cpu_affinity'): for pid in pids:
proc.cpu_affinity([0]) # New versions of psutil. ret = subprocess.call(['taskset', '-p', '-c', '0', str(pid)],
else: stdout=subprocess.PIPE,
proc.set_cpu_affinity([0]) # Older versions. stderr=subprocess.PIPE,
except (psutil.NoSuchProcess, psutil.AccessDenied): stdin=devnull)
logging.warn('Failed to set adb process CPU affinity') if ret:
logging.warn('Failed to taskset %d (%s)', pid, ret)
if not os.environ.get('BUILDBOT_BUILDERNAME'): if not os.environ.get('BUILDBOT_BUILDERNAME'):
# Killing adbd before running tests has proven to make them less likely to # Killing adbd before running tests has proven to make them less likely to
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment