| Index: client/run_isolated.py
|
| diff --git a/client/run_isolated.py b/client/run_isolated.py
|
| index 3d0b18b50a62860b00832582a29d74014415d426..fb4f12896dd398f2588eb36790231b7107bd151d 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'
|
| + '<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')
|
| + 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))
|
|
|