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

Issue 772862 link

Starred by 5 users

Issue metadata

Status: Fixed
Owner:
Closed: Oct 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 0
Type: Bug-Regression



Sign in to add a comment

Regression : Recovery is failing with an Unexpected error message while installing R63-10016.0.0 via USB

Project Member Reported by mmanchala@chromium.org, Oct 9 2017

Issue description

Chrome Version: 63.0.3230/10016.0.0 dev-channel Gnawty and Parrot
OS: Chrome

What steps will reproduce the problem?
(1)Connect the USB with 63.0.3230/10016.0.0 
(2)Try to recover the build(Esc+reload+power) and observe.

Expected: Should be able to recover the build.
Actual: Instead Unexpected Error message is seen

This is a Regression issue as build recovery is successful with 63.0.3223.0/9978.0.0 dev-channel Daisy

Good Build:63.0.3223.0/9978.0.0
Bad Build: 63.0.3223.0/9979.0.0

Note: 
1.As per comment #7 from  issue 769602  Filing this Issue
2.Checked on Daisy,Kip,Peppy,Paine,Blaze,Candy and Reks
3.Checked with 2 USB sticks[a)SUPER * TALENT USB 3.0 Express ST1-2 & b)Patriot Memory,supersonic 8GB ]

Attaching Log files


 
recovery_logs.1507553775.zip
43.6 KB Download
recovery_logs.zip
43.5 KB Download
Labels: Restrict-View-EditIssue
Owner: abod...@chromium.org
Status: Assigned (was: Untriaged)
Is that really the last good build? Hard to believe that there were 4 other tot QA's after 9978 and this wasn't caught...
https://cros-goldeneye.corp.google.com/chromeos/console/listBuild?milestone=63#%2F

Cc: dhadd...@chromium.org sdantul...@chromium.org mkarkada@chromium.org
Tested on Gnawty, AU and Recovery both are working as excepted. 
Chrome Version: 63.0.3230/10016.0.0 dev-channel Gnawty
Status: WontFix (was: Assigned)
After offline chat with Ansar, not reprod on devices listed. Maybe the USB stick was broken?
Able to reproduce the issue on 63.0.3230/10016.0.0 dev-channel Gnawty.

recovery_logs.zip
51.4 KB Download
Cc: ka...@chromium.org sontis@chromium.org
Labels: -Pri-0 -ReleaseBlock-Dev ReleaseBlock-Stable Pri-1
Status: Untriaged (was: WontFix)
Please ignore my comment #3, I was tested on Gnawty+ with Gnawty image.

Recovery failed on Gnawty with 10016.0.0 but successful auto updated to 10016.0.0
Please find the update_engine log as attached.


update_engine.20171009-140821.txt
48.8 KB View Download
Cc: vapier@chromium.org dchan@chromium.org
Components: OS>Firmware
From Recovery logs:
===============================
Updating Partition Table Attributes using CgptManager...
Updated kernel 2 with Successful = 1 and NumTriesLeft = 6
Checking /mnt/stateful_partition/unencrypted permission.
RemovePackFiles Failed
Touch(/mnt/stateful_partition/.install_completed) FAILED
Starting firmware updater (//usr/sbin/chromeos-firmwareupdate --mode=recovery)
Command: //usr/sbin/chromeos-firmwareupdate --mode=recovery
Starting Google_Gnawty firmware updater v4 (recovery)...
 - Updater package: [RO:Google_Gnawty.5216.239.109 RW:Google_Gnawty.5216.239.123 / EC:gnawty_v1.6.206-3acdf9e]
 - Current system:  [RO:Google_Gnawty.5216.239.3 , ACT:Google_Gnawty.5216.239.3 / EC:gnawty_v1.6.206-3acdf9e]
 - Write protection: Hardware: ON, Software: Main=ON EC=ON
recovery: update main/RW:A,B,SHARED
 * invoke: flashrom -p host -r _current/bios.bin
ERROR: Failed to get RW firmware information
ERROR: Execution failed: ./updater4.sh (error code = 1)
Finished after 9 seconds.
Failed Command: //usr/sbin/chromeos-firmwareupdate --mode=recovery - Exit Code 1
Firmware update failed (error code: 1).
Rolling back update due to failure installing required firmware.
Successfully updated GPT with all settings to rollback.
PostInstall Failed
===================================
Labels: -Pri-1 Pri-0
Summary: Regression : Recovery is failing with an Unexpected error message while installing R63-10016.0.0 via USB (was: Regression : Recovery is failing with an Unexpected error message while installing 63.0.3223/9979.0.0 via USB)
yes, that error in comment #7 indicates something is going wrong with flashrom.  someone with an actual failing gnawty device will need to debug it though.  cros_get_rw_firmware_info is sending all of its error output to /dev/null.

looks like this bit of code:
src/platform/firmware/pack_dist/updater4.sh
  # Get RW firmware information
  local fw_info
  fw_info="$(cros_get_rw_firmware_info "$DIR_TARGET/$TYPE_MAIN/VBLOCK_A" \
                                       "$DIR_TARGET/$TYPE_MAIN/FW_MAIN_A" \
                                       "$target_image")" || fw_info=""
  [ -n "$fw_info" ] || die "Failed to get RW firmware information"

src/platform/firmware/pack_dist/crosutil.sh
cros_get_rw_firmware_info() {
  check_param "cros_get_rw_firmware_info(vblock, fw_main, image)" "$@"
  local vblock="$1"
  local fw_main="$2"
  local image="$3"

  local rootkey="_rootkey"
  silent_invoke futility gbb -g --rootkey="$rootkey" "$image" 2>/dev/null ||
    return

  local fw_info
  fw_info="$(futility vbutil_firmware \
               --verify "$vblock" \
               --signpubkey "$rootkey" \
               --fv "$fw_main" 2>/dev/null)" || fw_info=""
  echo "$fw_info"
}
could also bisect down the version range too.  9979.0.0 is known to be broken (and the fix didn't land until 9984.0.0).  so check versions from 9984.0.0 through 10016.0.0.
Owner: hungte@chromium.org
Status: Assigned (was: Untriaged)
Hunge Te wondering if this is related to your change that landed in 9978.0.0?
https://chromium-review.googlesource.com/#/c/chromiumos/overlays/chromiumos-overlay/+/668352/

Although I would expect this to fail for all devices.
can someone w/a gnawty just do a "quick" run through the current versions and see which work/fail ?  you can use `cros flash` to pull down known working versions.
Re#11 I think that is not related because 9978 was reported to be "good" in this issue.

One of the change landed in 9979 and touching the code listed in #9 is https://chromium-review.googlesource.com/c/chromiumos/platform/firmware/+/668318 , but I can't see if that would break anything.

But if anyone has a gwanty, can you check a build with 668318 reverted would have this problem fixed?

Re#12 I don't think anything has been fixed in 10016. According to #6, "Recovery failed on Gnawty with 10016.0.0 but successful auto updated to 10016.0.0". That means it succeeded in AU mode instead of recovery mode.

Maybe we should remove the 2>/dev/null to find out what's wrong.
I believe this error is related to this recent change: https://chromium-review.googlesource.com/c/chromiumos/platform/firmware/+/668318

i.e. use of old vbutil_firmware was replaced with futility vbutil_firmware. However, the futility version that is included in the updater is futility_s i.e. the static futility binary. And if you do a futility_s help, it indicates that vbutil_firmware is not supported.  This has to do with the FUTIL_STATIC_SRCS in https://chromium.googlesource.com/chromiumos/platform/vboot_reference/+/master/Makefile#664. Though, the solution is not as simple as just adding FUTIL_SRCS to FUTIL_STATIC_SRCS. All the dependencies on crypto libraries, lz and ldl need to be taken care of.
Cc: furquan@chromium.org
i posted a CL to drop the 2>/dev/null

looks like we need just vbutil_firmware & vbutil_key added:
  https://chromium-review.googlesource.com/708236
i think before my CL 668318 we were running the vbutil programs from $PATH which in turn were links to the dynamic futility.  i.e. we should have been bundling them already, but we weren't.
As updated in C#0, this issue is seen on Daisy,Kip,Peppy,Paine,Blaze,Candy and Reks. Also, reconfirming that issue persists on latest ToT build 63.0.3230/10018.0.0 Peppy,Kip,Reks,Candy,Quawks,Celes and Falco. i.e.Unexpected error message is seen.



Project Member

Comment 19 by bugdroid1@chromium.org, Oct 10 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/vboot_reference/+/5d5b2f16109662dceb55dfbe62772ee41887be82

commit 5d5b2f16109662dceb55dfbe62772ee41887be82
Author: Mike Frysinger <vapier@chromium.org>
Date: Tue Oct 10 12:31:03 2017

futility_s: add vbutil_firmware & vbutil_key

The firmware updater relies on these, so include them.

BUG= chromium:772862 
TEST=build works and futility_s includes new commands
BRANCH=None

Change-Id: I973e339d11df4d5b72f70d3a9e28916cca4ebbf6
Reviewed-on: https://chromium-review.googlesource.com/708236
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Furquan Shaikh <furquan@chromium.org>

[modify] https://crrev.com/5d5b2f16109662dceb55dfbe62772ee41887be82/Makefile

Cc: hungte@chromium.org
Labels: -Restrict-View-EditIssue
Owner: vapier@chromium.org
Status: Fixed (was: Assigned)
should be fixed by above commit
AU failure on parrot device from 9901.35.0 ==> M63 Dev RC 10009.0.0
Attached update engine log for c#21 
update_engine.20171010-110531.txt
50.3 KB View Download
anything <10020.0.0 is known to be broken.  please retest with 10020.0.0+.

Comment 24 by son...@google.com, Oct 10 2017

Recovery installation is failing for10009.0.0_winky.

Getting unexpected error message.
Recovery logs are present at https://pantheon.corp.google.com/storage/browser/chromiumos-test-logs/bugfiles/cros/772862/?debugUI=CLOUD
reprod on chell too.

Comment 26 Deleted

Labels: -ReleaseBlock-Dev
again, please don't bother testing images older than 10020.0.0.  reporting them as broken isn't useful when we already know they're broken.  please update the images you're testing.
Tested on cros:10020 but still AU is failed on parrot.

AU log info:
--------------------------------------------------------------

TO:
CHROMEOS_AUSERVER=https://tools.google.com/service/update2
CHROMEOS_BOARD_APPID={9D137383-EB72-4BA9-A523-91AC0853F8AD}
CHROMEOS_CANARY_APPID={90F229CE-83E2-4FAF-8479-E368A34938B1}
CHROMEOS_DEVSERVER=
CHROMEOS_RELEASE_APPID={9D137383-EB72-4BA9-A523-91AC0853F8AD}
CHROMEOS_RELEASE_BOARD=parrot-signed-mp-v4keys
CHROMEOS_RELEASE_BRANCH_NUMBER=0
CHROMEOS_RELEASE_BUILDER_PATH=parrot-release/R63-10020.0.0
CHROMEOS_RELEASE_BUILD_NUMBER=10020
CHROMEOS_RELEASE_BUILD_TYPE=Official Build
CHROMEOS_RELEASE_CHROME_MILESTONE=63
CHROMEOS_RELEASE_DESCRIPTION=10020.0.0 (Official Build) dev-channel parrot 
CHROMEOS_RELEASE_NAME=Chrome OS
CHROMEOS_RELEASE_PATCH_NUMBER=0
CHROMEOS_RELEASE_TRACK=dev-channel
CHROMEOS_RELEASE_VERSION=10020.0.0
DEVICETYPE=CHROMEBOOK
GOOGLE_RELEASE=10020.0.0

ChromeosChrootPostinst(10020.0.0)
Set boot target to /dev/sda5: Partition 5, Slot B
SetImage
KERNEL_CONFIG: console= loglevel=7 init=/sbin/init cros_secure oops=panic panic=-1 root=/dev/dm-1 rootwait ro dm_verity.error_behavior=3 dm_verity.max_bios=-1 dm_verity.dev_wait=1 dm="2 vboot none ro 1,0 2579200 bootcache PARTUUID=%U/PARTNROFF=1 2579200 8d0802652a04fcb17e59127ac568ce87e5a60800 512 20000 100000, vroot none ro 1,0 2539520 verity payload=254:0 hashtree=254:0 hashstart=2539520 alg=sha1 root_hexdigest=c852ea435ddfee0c60db64f618fe7075f51bffd1 salt=95fd56a1c6ddfb9f0ee7bf2efdf46b04d848ee953f25d93621402922457ecc6a" noinitrd vt.global_cursor_default=0 kern_guid=%U add_efi_memmap boot=local noresume noswap i915.modeset=1 tpm_tis.force=1 tpm_tis.interrupts=0 nmi_watchdog=panic,lapic iTCO_vendor_support.vendorsupport=3  
Setting up verity.
Finished after 23 seconds.
Clearing network driver boot cache: /var/lib/preload-network-drivers.
Syncing filesystems before changing boot order...
Finished after 2 seconds.
Updating Partition Table Attributes using CgptManager...
Updated kernel 4 with Successful = 0 and NumTriesLeft = 6
Checking /mnt/stateful_partition/unencrypted permission.
RemovePackFiles Failed
Touch(/mnt/stateful_partition/.install_completed) FAILED
Starting firmware updater (//usr/sbin/chromeos-firmwareupdate --mode=autoupdate)
Command: //usr/sbin/chromeos-firmwareupdate --mode=autoupdate
Starting Google_Parrot firmware updater v3 (autoupdate)...
 - Updater package: [Google_Parrot.2685.54.0 / 00BE107A00]
 - Current system:  [RO:Google_Parrot.2685.37.0 [RO_NORMAL], ACT:Google_Parrot.2685.37.0 / 00BE107A00]
Warning: wpsw_cur is not availble, using wpsw_boot (1)
Segmentation fault (core dumped)
 - Write protection: Hardware: ON, Software: Main=off
Warning: EC FMAP layout file is overridden by ec.layout.
 * invoke: flashrom -p host -r _current/bios.bin
 Execution failed (139): flashrom -p host -r _current/bios.bin
 Messages:
Calibrating delay loop... OK.
flashrom v0.9.9  : b17e9e4 : Sep 27 2017 19:58:03 UTC on Linux 3.8.11 (x86_64)
flashrom v0.9.9  : b17e9e4 : Sep 27 2017 19:58:03 UTC on Linux 3.8.11 (x86_64)
Segmentation fault (core dumped)
ERROR: Execution FAILED.
ERROR: Execution failed: ./updater3.sh (error code = 1)
Finished after 5 seconds.
Failed Command: //usr/sbin/chromeos-firmwareupdate --mode=autoupdate - Exit Code 1
Firmware update failed (error code: 1).
Rolling back update due to failure installing required firmware.
Successfully updated GPT with all settings to rollback.
PostInstall Failed

update_engine.20171010-153822.txt
55.0 KB View Download
Status: Assigned (was: Fixed)
Labels: ReleaseBlock-Dev
Reopened bug. Cl in #19 landed in 10020 but issue still seen. Mike could you please take a look?
that's a different issue.  that's flashrom segfaulting, not vboot/futility programs not working.  this bug is only about the vbutil subprograms missing.

is recovery failing too, or only AU ?
Project Member

Comment 33 by bugdroid1@chromium.org, Oct 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/firmware/+/222889a5a58a0fe05ee1b01edda506f03c9fa366

commit 222889a5a58a0fe05ee1b01edda506f03c9fa366
Author: Mike Frysinger <vapier@chromium.org>
Date: Wed Oct 11 05:13:46 2017

drop stderr silencing

If these tools fail, we abort, so we don't want to throw away their
stderr output.  They've been this way since they started.

BUG= chromium:772862 
TEST=precq passes

Change-Id: Ib56d010f63d6dfc51868b2e7ad53aa071e4e4627
Reviewed-on: https://chromium-review.googlesource.com/708254
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>

[modify] https://crrev.com/222889a5a58a0fe05ee1b01edda506f03c9fa366/pack_dist/crosutil.sh

Able to install build in Dev Mode for 63.0.3236.0/10021.0.0 dev-channel Peppy,Kip and in verified mode unable to install build instead "You are using an out-of-Date official Chrome OS recovery image" error Message is seen(Please refer Screenshot)

Attaching log files for verified Mode

recovery_logs.zip
31.8 KB Download
recovery_logs.1507725089.zip
31.9 KB Download
ErrorMessageInVerifiedMode.jpg
2.5 MB View Download
that bug isn't related to this.  this bug is only about firmware-updater.  that code failure is the recovery init itself which is  issue 764753 .  there's already a CL in flight to fix it though.
sorry,  issue 765844  is tracking the futility_s usage in the recovery initramfs
According to abodeti@ both AU and recovery are failing.
the only bug i'm looking at is the parrot/flashrom crash.  all other issues should be resolved (or there's a CL in flight for it), so i'm not looking at any existing reports.  they need to be revalidated with ToT (although you prob should wait for  issue 765844  first).
Status: Fixed (was: Assigned)
the flashrom crash isn't related to my changes or this bug.  it's been crashing on parrot since 9981.0.0.  i've moved that to  issue 773801 .

since all the issues raised here are fixed or tracked in a diff bug, i'm closing this out.

Sign in to add a comment