skia2/infra/bots/recipes/test.expected/failed_push.json
Ben Wagner 63acfe3dd6 [infra] Retry failed pushes in Android flavor
It seems like we see quite a few "force quarantined" bots when pushing
resources to the device fails. Rewrite copy_directory_contents_to_device
to use the _adb method, which automatically retries.

Change-Id: Iae36f8e42e85a58fdddc8c9dc80e693a371fab8b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248560
Commit-Queue: Eric Boren <borenet@google.com>
Auto-Submit: Ben Wagner aka dogben <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
2019-10-14 18:14:07 +00:00

298 lines
9.9 KiB
JSON

[
{
"cmd": [
"vpython",
"-u",
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
"--json-output",
"/path/to/tmp/json",
"ensure-directory",
"--mode",
"0777",
"[START_DIR]/tmp"
],
"infra_step": true,
"name": "makedirs tmp_dir"
},
{
"cmd": [
"python",
"-u",
"import os\nprint os.environ.get('SWARMING_BOT_ID', '')\n"
],
"name": "get swarming bot id",
"~followup_annotations": [
"@@@STEP_LOG_LINE@python.inline@import os@@@",
"@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_BOT_ID', '')@@@",
"@@@STEP_LOG_END@python.inline@@@"
]
},
{
"cmd": [
"/opt/infra-android/tools/adb",
"shell",
"mkdir",
"-p",
"/sdcard/revenge_of_the_skiabot/resources"
],
"cwd": "[START_DIR]/skia",
"env": {
"ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey",
"CHROME_HEADLESS": "1",
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
},
"infra_step": true,
"name": "mkdir /sdcard/revenge_of_the_skiabot/resources"
},
{
"cmd": [],
"name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources",
"~followup_annotations": [
"@@@STEP_EXCEPTION@@@"
]
},
{
"cmd": [
"vpython",
"-u",
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
"--json-output",
"/path/to/tmp/json",
"listdir",
"[START_DIR]/skia/resources",
"--recursive"
],
"infra_step": true,
"name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources.list [START_DIR]/skia/resources",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@",
"@@@STEP_LOG_LINE@listdir@[START_DIR]/skia/resources/.file3@@@",
"@@@STEP_LOG_LINE@listdir@[START_DIR]/skia/resources/.ignore/file4@@@",
"@@@STEP_LOG_LINE@listdir@[START_DIR]/skia/resources/file1@@@",
"@@@STEP_LOG_LINE@listdir@[START_DIR]/skia/resources/subdir/file2@@@",
"@@@STEP_LOG_END@listdir@@@"
]
},
{
"cmd": [
"/opt/infra-android/tools/adb",
"push",
"[START_DIR]/skia/resources/.file3",
"/sdcard/revenge_of_the_skiabot/resources/.file3"
],
"cwd": "[START_DIR]/skia",
"env": {
"ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey",
"CHROME_HEADLESS": "1",
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
},
"infra_step": true,
"name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources.push [START_DIR]/skia/resources/.file3",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
},
{
"cmd": [
"/opt/infra-android/tools/adb",
"push",
"[START_DIR]/skia/resources/file1",
"/sdcard/revenge_of_the_skiabot/resources/file1"
],
"cwd": "[START_DIR]/skia",
"env": {
"ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey",
"CHROME_HEADLESS": "1",
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
},
"infra_step": true,
"name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources.push [START_DIR]/skia/resources/file1",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@",
"@@@STEP_EXCEPTION@@@"
]
},
{
"cmd": [
"/opt/infra-android/tools/adb",
"kill-server"
],
"cwd": "[START_DIR]/skia",
"env": {
"ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey",
"CHROME_HEADLESS": "1",
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
},
"infra_step": true,
"name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources.kill adb server after failure of 'push [START_DIR]/skia/resources/file1' (attempt 1)",
"timeout": 30,
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
},
{
"cmd": [
"/opt/infra-android/tools/adb",
"wait-for-device"
],
"cwd": "[START_DIR]/skia",
"env": {
"ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey",
"CHROME_HEADLESS": "1",
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
},
"infra_step": true,
"name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources.wait for device after failure of 'push [START_DIR]/skia/resources/file1' (attempt 1)",
"timeout": 180,
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
},
{
"cmd": [
"/opt/infra-android/tools/adb",
"push",
"[START_DIR]/skia/resources/file1",
"/sdcard/revenge_of_the_skiabot/resources/file1"
],
"cwd": "[START_DIR]/skia",
"env": {
"ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey",
"CHROME_HEADLESS": "1",
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
},
"infra_step": true,
"name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources.push [START_DIR]/skia/resources/file1 (attempt 2)",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@",
"@@@STEP_EXCEPTION@@@"
]
},
{
"cmd": [
"/opt/infra-android/tools/adb",
"kill-server"
],
"cwd": "[START_DIR]/skia",
"env": {
"ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey",
"CHROME_HEADLESS": "1",
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
},
"infra_step": true,
"name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources.kill adb server after failure of 'push [START_DIR]/skia/resources/file1' (attempt 2)",
"timeout": 30,
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
},
{
"cmd": [
"/opt/infra-android/tools/adb",
"wait-for-device"
],
"cwd": "[START_DIR]/skia",
"env": {
"ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey",
"CHROME_HEADLESS": "1",
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
},
"infra_step": true,
"name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources.wait for device after failure of 'push [START_DIR]/skia/resources/file1' (attempt 2)",
"timeout": 180,
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
},
{
"cmd": [
"/opt/infra-android/tools/adb",
"push",
"[START_DIR]/skia/resources/file1",
"/sdcard/revenge_of_the_skiabot/resources/file1"
],
"cwd": "[START_DIR]/skia",
"env": {
"ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey",
"CHROME_HEADLESS": "1",
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
},
"infra_step": true,
"name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources.push [START_DIR]/skia/resources/file1 (attempt 3)",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@",
"@@@STEP_EXCEPTION@@@"
]
},
{
"cmd": [
"python",
"-u",
"\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n print line\n",
"[START_DIR]/build"
],
"env": {
"CHROME_HEADLESS": "1",
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
},
"infra_step": true,
"name": "dump log",
"timeout": 300,
"~followup_annotations": [
"@@@STEP_LOG_LINE@python.inline@@@@",
"@@@STEP_LOG_LINE@python.inline@import os@@@",
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
"@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@",
"@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])@@@",
"@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@",
"@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@",
"@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@",
"@@@STEP_LOG_LINE@python.inline@ addr, path = tokens[-2:]@@@",
"@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@",
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@",
"@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@",
"@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@",
"@@@STEP_LOG_LINE@python.inline@ print line@@@",
"@@@STEP_LOG_END@python.inline@@@"
]
},
{
"cmd": [
"vpython",
"-u",
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
"--json-output",
"/path/to/tmp/json",
"copy",
" ",
"/home/chrome-bot/build123-m2--device5.force_quarantine"
],
"infra_step": true,
"name": "Quarantining Bot",
"~followup_annotations": [
"@@@STEP_LOG_LINE@build123-m2--device5.force_quarantine@ @@@",
"@@@STEP_LOG_END@build123-m2--device5.force_quarantine@@@"
]
},
{
"cmd": [
"/opt/infra-android/tools/adb",
"kill-server"
],
"cwd": "[START_DIR]/skia",
"env": {
"ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey",
"CHROME_HEADLESS": "1",
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
},
"infra_step": true,
"name": "kill adb server"
},
{
"failure": {
"humanReason": "Infra Failure: Step('push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources.push [START_DIR]/skia/resources/file1 (attempt 3)') (retcode: 1)"
},
"name": "$result"
}
]