New issue
Advanced search Search tips

Issue 785325 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Fix chaos_runner creation of host object

Project Member Reported by pprabhu@chromium.org, Nov 15 2017

Issue description

From harpreet:

While debugging Chaos lab (wifi interop lab) test failures I found that the test were failing due to the following exception when create_host is called in chaos_runner.py.

10/27 02:22:04.118 ERROR|        server_job:0864| Exception escaped control file, job aborting:
Traceback (most recent call last):
  File "/usr/local/autotest/server/server_job.py", line 856, in run
    self._execute_code(server_control_file, namespace)
  File "/usr/local/autotest/server/server_job.py", line 1357, in _execute_code
    execfile(code_file, namespace, namespace)
  File "/usr/local/autotest/results/151915883-chromeos-test/control.srv", line 36, in <module>
    parallel_simple(run_chaos_open, machines)
  File "/usr/local/autotest/server/subcommand.py", line 98, in parallel_simple
    function(arg)
  File "/usr/local/autotest/results/151915883-chromeos-test/control.srv", line 33, in run_chaos_open
    runner.run(job)
  File "/usr/local/autotest/server/cros/chaos_lib/chaos_runner.py", line 163, in run
    host_class=self._host.__class__),
  File "/usr/local/autotest/server/hosts/factory.py", line 172, in create_host
    detected_args = _get_host_arguments(machine)
  File "/usr/local/autotest/server/hosts/factory.py", line 68, in _get_host_arguments
    host_info_store = host_info.get_store_from_machine(machine)
  File "/usr/local/autotest/server/hosts/host_info.py", line 330, in get_store_from_machine
    return machine['host_info_store']
KeyError: 'host_info_store'

I noticed that if we pass just the hostname as a string when calling create_host, this error is not seen. So I submitted this CL to get the test to successfully create the host though the real issue lies elsewhere. I see that you had added a function to extract host_info_store from machine and this is exactly where the above exception happens. I am going to revert the CL I submitted as afe_host info is needed in the test setup. Could you please take a look at why the above exception is happening? Here is an example autoserv debug log from the test that ran before my CL.
 
There are two ways to create a host object -- using hostname, or using a machine dict.

There are two things that are broken about this
- Both ways use the same argument to create_host (but interpreted differently)
- There's no schema checking of the machine dict, when a dict is used, but things don't work correctly if the machine dict isn't complete.

Fixing.
Project Member

Comment 3 by bugdroid1@chromium.org, Nov 16 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/autotest/+/c31033ce326eb5154f5b7ec20649176840524265

commit c31033ce326eb5154f5b7ec20649176840524265
Author: Prathmesh Prabhu <pprabhu@chromium.org>
Date: Thu Nov 16 04:21:03 2017

autotest: Point fix for chaos_runner host creation

BUG= chromium:785325 
TEST=TBD.

Change-Id: I095830a8ad9a0e34540aef1608f11cac04209f43
Reviewed-on: https://chromium-review.googlesource.com/772075
Commit-Ready: Prathmesh Prabhu <pprabhu@chromium.org>
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Harpreet Grewal <harpreet@chromium.org>

[modify] https://crrev.com/c31033ce326eb5154f5b7ec20649176840524265/server/cros/chaos_lib/chaos_runner.py

Status: Fixed (was: Started)
Fixed, pending verification
Project Member

Comment 5 by bugdroid1@chromium.org, Dec 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/autotest/+/7377075195c711d45b52354bdee333e03fa53627

commit 7377075195c711d45b52354bdee333e03fa53627
Author: harpreet <harpreet@google.com>
Date: Mon Dec 11 23:16:24 2017

autotest: Fix for chasey static runner host creation

BUG= chromium:785325 
TEST=None

Change-Id: Ie2e5c68a62b7281e9f105ff2ca87b10e7a705fba
Reviewed-on: https://chromium-review.googlesource.com/810034
Commit-Ready: Harpreet Grewal <harpreet@chromium.org>
Tested-by: Harpreet Grewal <harpreet@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>

[modify] https://crrev.com/7377075195c711d45b52354bdee333e03fa53627/server/cros/chaos_lib/static_runner.py

Sign in to add a comment