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".
,
Jun 26 2017
,
Jul 14 2017
,
Jul 14 2017
,
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
,
Jul 18 2017
Fix is in; waiting to see it pushed to prod.
,
Jul 21 2017
|
||||
►
Sign in to add a comment |
||||
Comment 1 by jrbarnette@chromium.org
, Jun 20 2017