Index: client/run_isolated.py |
diff --git a/client/run_isolated.py b/client/run_isolated.py |
index 3d0b18b50a62860b00832582a29d74014415d426..2eff0e09cfe3d09e928c318bb6132cbfa53dcdde 100755 |
--- a/client/run_isolated.py |
+++ b/client/run_isolated.py |
@@ -195,6 +195,15 @@ def run_command(command, cwd, tmp_dir, hard_timeout, grace_period): |
except OSError: |
# This is not considered to be an internal error. The executable simply |
# does not exit. |
+ sys.stderr.write( |
+ '<The executable does not exist or a dependent library is missing>\n' |
tandrii(chromium)
2016/02/24 18:45:59
does this "<" have a special meaning?
M-A Ruel
2016/02/24 19:03:14
No, I just wanted the output to look special.
|
+ '<Check for missing .so/.dll in the .isolate or GN file>\n' |
+ '<Command: %s>\n' % command) |
+ if os.environ.get('SWARMING_TASK_ID'): |
+ # Give an additional hint when running as a swarming task. |
+ sys.stderr.write( |
+ '<See the task\'s page for commands to help diagnose this issue ' |
+ 'by reproducing the task locally>\n') |
exit_code = 1 |
logging.info( |
'Command finished with exit code %d (%s)', |
@@ -271,12 +280,23 @@ def map_and_run( |
out_dir = make_temp_dir(prefix + u'out', root_dir) |
tmp_dir = make_temp_dir(prefix + u'tmp', root_dir) |
try: |
- bundle = isolateserver.fetch_isolated( |
- isolated_hash=isolated_hash, |
- storage=storage, |
- cache=cache, |
- outdir=run_dir, |
- require_command=True) |
+ try: |
+ bundle = isolateserver.fetch_isolated( |
+ isolated_hash=isolated_hash, |
+ storage=storage, |
+ cache=cache, |
+ outdir=run_dir, |
+ require_command=True) |
+ except isolateserver.IsolatedErrorNoCommand: |
+ # Handle this as a task failure, not an internal failure. |
+ sys.stderr.write( |
+ '<The .isolated doesn\'t declare any command to run!>\n' |
+ '<Check your .isolate for missing \'command\' variable>\n') |
+ if os.environ.get('SWARMING_TASK_ID'): |
+ # Give an additional hint when running as a swarming task. |
+ sys.stderr.write('<This occurs at the \'isolate\' step\n') |
tandrii(chromium)
2016/02/24 18:45:59
missing '>' before \n
M-A Ruel
2016/02/24 19:03:14
Done.
|
+ result['exit_code'] = 1 |
+ return result |
change_tree_read_only(run_dir, bundle.read_only) |
cwd = os.path.normpath(os.path.join(run_dir, bundle.relative_cwd)) |