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

Issue 735159 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jul 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Servo reboot repair tries "set_gbb_flags.sh"

Reported by jrbarnette@chromium.org, Jun 20 2017

Issue description

Looking at a recent failed repair task, I see that
an attempt to repair servo included this error:
	START	----	repair.reboot	timestamp=1497985697	localtime=Jun 20 12:08:17	
		FAIL	----	repair.reboot	timestamp=1497985706	localtime=Jun 20 12:08:26	command execution error
  * Command: 
      /usr/bin/ssh -a -x  -o ControlPath=/tmp/_autotmp_wHIEnCssh-master/socket
      -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o
      BatchMode=yes -o ConnectTimeout=30 -o ServerAliveInterval=180 -o
      ServerAliveCountMax=3 -o ConnectionAttempts=4 -o Protocol=2 -l root -p 22
      chromeos4-row13-rack1-host8-servo " if type \"logger\" > /dev/null 2>&1;
      then logger -tag \"autotest\" \"server[stack::repair|run|wrapper] ->
      ssh_run(/usr/share/vboot/bin/set_gbb_flags.sh 0)\";fi;
      /usr/share/vboot/bin/set_gbb_flags.sh 0"
  Exit status: 1
  Duration: 4.61115598679
  
  stdout:
  Calibrating delay loop... OK.
  stderr:
  flashrom v0.9.4  : f15c2fa : May 13 2017 03:58:01 UTC on Linux 4.4.4 (armv7l)
  flashrom v0.9.4  : f15c2fa : May 13 2017 03:58:01 UTC on Linux 4.4.4 (armv7l)
  delay loop is unreliable, trying to continue No EEPROM/flash device found.
  Note: flashrom can never write if the flash chip isn't found automatically.
	END FAIL	----	repair.reboot	timestamp=1497985706	localtime=Jun 20 12:08:26	

For servo repair, we shouldn't be invoking set_gbb_flags.sh like
this (or at all).

The root cause is that server.hosts.servo_repair._ServoRebootRepair
inherits from server.hosts.repair.RebootRepair.  The RebootRepair
base class now calls "set_gbb_flags" for the sake of CrosHost, so
we need to separate the Servo version of this class from its parent
class, i.e.
  * Create an abstract RebootRepair that (only) reboots a host
    in the context of a RepairAction.
  * Extend _CrosRebootRepair from RebootRepair to invoke
    "set_gbb_flags" for Cros DUTs.
  * Extend _ServoRebootRepair from RebootRepair to properly reboot
    a servo host without triggering "set_gbb_flags".

  
 
Components: Infra>Client>ChromeOS
Labels: -Pri-1 Hotlist-Fixit Pri-2
Owner: jrbarnette@chromium.org
Status: Started (was: Available)
Project Member

Comment 5 by bugdroid1@chromium.org, Jul 18 2017

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

commit 1b75b452f10a3753dc25845c03cec75502b50fe9
Author: Richard Barnette <jrbarnette@chromium.org>
Date: Tue Jul 18 16:47:26 2017

[autotest] Don't run set_gbb_flags for servo reboot repair.

The ServoRebootRepair class was calling its super-class for the
final acutal reboot call.  That inheritance caused it to invoke the
'set_gbb_flags' script.  However, the 'set_gbb_flags' invocation
was only meant to run on CrOS DUTs, not servo.

This moves the problem invocation to a new subclass that is specific
to CrOS DUTs.

BUG= chromium:735159 
TEST=invoke the new repair action from the python CLI

Change-Id: Id12c79b547aa7ee4c9ee40a0344940e243ff7d80
Reviewed-on: https://chromium-review.googlesource.com/572057
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@google.com>

[modify] https://crrev.com/1b75b452f10a3753dc25845c03cec75502b50fe9/server/hosts/cros_repair_unittest.py
[modify] https://crrev.com/1b75b452f10a3753dc25845c03cec75502b50fe9/server/hosts/repair.py
[modify] https://crrev.com/1b75b452f10a3753dc25845c03cec75502b50fe9/server/hosts/cros_repair.py

Fix is in; waiting to see it pushed to prod.

Status: Fixed (was: Started)

Sign in to add a comment