New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 658451 link

Starred by 2 users

Issue metadata

Status: Untriaged
Owner: ----
Cc:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug



Sign in to add a comment

Bug in isolated tests chart json uploading

Project Member Reported by martiniss@chromium.org, Oct 21 2016

Issue description

This is a complicated bug :(

It looks like the try block here (https://chromium.googlesource.com/chromium/tools/build.git/+/master/scripts/slave/recipe_modules/chromium_tests/steps.py#1133) is swallowing an exception. The exception is this:

  File "/s/build/scripts/slave/recipe_modules/chromium_tests/steps.py", line 1180, in _output_chartjson_results_if_present
    args)
  File "/s/build/scripts/slave/.recipe_deps/recipe_engine/recipe_engine/recipe_api.py", line 507, in _inner
    return func(*a, **kw)
  File "/s/build/scripts/slave/.recipe_deps/recipe_engine/recipe_modules/python/api.py", line 23, in __call__
    return self.m.step(name, cmd + list(args or []), **kwargs)
  File "/s/build/scripts/slave/.recipe_deps/recipe_engine/recipe_modules/step/api.py", line 170, in __call__
    schema.set_val(kwargs)
  File "/s/build/scripts/slave/.recipe_deps/recipe_engine/recipe_engine/config.py", line 401, in set_val
    raise type(e)('While assigning key %r: %s' % (name, e))
TypeError: While assigning key 'cmd': Expected None to be of type (<type 'int'>, <type 'long'>, <type 'basestring'>, <class 'recipe_engine.config_types.Path'>, <class 'recipe_engine.util.Placeholder'>)


This is caused because you're passing in a None to the recipe engine, which it doesn't know how to interpret. The arguments to the python call are as follows:

['--chartjson-results-file', <RECIPE_MODULES.recipe_engine.raw_io.api.InputDataPlaceholder object at 0x7f5a4ca68a90>, '--perf-id', None, '--results-url', None, '--name', 'telemetry_gpu_unittests', '--buildername', 'Linux Tests', '--buildnumber', '1234']

(The InputDataPlaceholder is different in the actual code, but is effectively the same)

The perf id and results url are not set correctly. This is because the bot is "Linux Tests" on chromium.linux, which doesn't have a perf id.

I tried changing the bot id to be correct, and I got this error.

  File "/s/build/scripts/slave/recipe_modules/chromium_tests/api.py", line 831, in main_waterfall_steps
    bot_config)
  File "/s/build/scripts/slave/.recipe_deps/recipe_engine/recipe_engine/recipe_api.py", line 507, in _inner
    return func(*a, **kw)
  File "/s/build/scripts/slave/recipe_modules/chromium_tests/api.py", line 208, in prepare_checkout
    bot_config, root_solution_revision)
  File "/s/build/scripts/slave/.recipe_deps/recipe_engine/recipe_engine/recipe_api.py", line 507, in _inner
    return func(*a, **kw)
  File "/s/build/scripts/slave/recipe_modules/chromium_checkout/api.py", line 73, in ensure_checkout
    **kwargs)
  File "/s/build/scripts/slave/.recipe_deps/recipe_engine/recipe_engine/recipe_api.py", line 507, in _inner
    return func(*a, **kw)
  File "/s/build/scripts/slave/.recipe_deps/depot_tools/recipe_modules/bot_update/api.py", line 103, in ensure_checkout
    self.m.properties.get('patch_project'), cfg)
  File "/s/build/scripts/slave/.recipe_deps/recipe_engine/recipe_engine/recipe_api.py", line 507, in _inner
    return func(*a, **kw)
  File "/s/build/scripts/slave/.recipe_deps/depot_tools/recipe_modules/gclient/api.py", line 331, in calculate_patch_root
    return cfg.solutions[0].name
  File "/s/build/scripts/slave/.recipe_deps/recipe_engine/recipe_engine/config.py", line 483, in __getitem__
    return self.data.__getitem__(index)
IndexError: list index out of range
Uncaught exception (IndexError): list index out of range


Which I don't really understand, and looks like a bad misconfiguration or default somewhere.

This makes me sad :(
 
Ok, I made some progress. This is really confusing though.
Ok, made some progress. https://codereview.chromium.org/2444613002 is the WIP CL. It's not finished yet, but it looks like I managed to fix the test maybe?

Comment 3 by eyaich@chromium.org, Oct 24 2016

Where are you seeing this exception?  When you train the expectations and then run those tests?  I am running these at head and not seeing those exceptions. 

In theory those tests wouldn't get to generating the command because they don't contain chartjson results.  You are right that LinuxTests don't have a perf id or a results url but they shouldn't have to. They would return when the charts were not found on line 1134: https://chromium.googlesource.com/chromium/tools/build.git/+/master/scripts/slave/recipe_modules/chromium_tests/steps.py#1134   

Comment 4 by stip@chromium.org, Feb 10 2017

Cc: -stip@chromium.org
Project Member

Comment 5 by sheriffbot@chromium.org, Feb 21 2018

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available. If you change it back, also remove the "Hotlist-Recharge-Cold" label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Cc: -iannucci@chromium.org iannu...@google.com

Sign in to add a comment