summaryrefslogtreecommitdiffstats
path: root/updater
diff options
context:
space:
mode:
authorTianjie Xu <xunchang@google.com>2017-05-24 20:51:03 +0200
committerandroid-build-merger <android-build-merger@google.com>2017-05-24 20:51:03 +0200
commitaef046255a84592c238855df44f094146c12dd40 (patch)
treeec3e7849518e4a40bc76b713bcf3908cbd79ddb4 /updater
parentMerge "Print SHA1 of the patch if bsdiff fails with data error" am: 1f9808bd48 (diff)
parentMerge "Retry the update if ApplyBSDiffPatch | ApplyImagePatch fails" (diff)
downloadandroid_bootable_recovery-aef046255a84592c238855df44f094146c12dd40.tar
android_bootable_recovery-aef046255a84592c238855df44f094146c12dd40.tar.gz
android_bootable_recovery-aef046255a84592c238855df44f094146c12dd40.tar.bz2
android_bootable_recovery-aef046255a84592c238855df44f094146c12dd40.tar.lz
android_bootable_recovery-aef046255a84592c238855df44f094146c12dd40.tar.xz
android_bootable_recovery-aef046255a84592c238855df44f094146c12dd40.tar.zst
android_bootable_recovery-aef046255a84592c238855df44f094146c12dd40.zip
Diffstat (limited to 'updater')
-rw-r--r--updater/blockimg.cpp2
-rw-r--r--updater/updater.cpp4
2 files changed, 6 insertions, 0 deletions
diff --git a/updater/blockimg.cpp b/updater/blockimg.cpp
index d5c170473..df366b0b8 100644
--- a/updater/blockimg.cpp
+++ b/updater/blockimg.cpp
@@ -1213,6 +1213,7 @@ static int PerformCommandDiff(CommandParameters& params) {
std::placeholders::_2),
nullptr, nullptr) != 0) {
LOG(ERROR) << "Failed to apply image patch.";
+ failure_type = kPatchApplicationFailure;
return -1;
}
} else {
@@ -1221,6 +1222,7 @@ static int PerformCommandDiff(CommandParameters& params) {
std::placeholders::_2),
nullptr) != 0) {
LOG(ERROR) << "Failed to apply bsdiff patch.";
+ failure_type = kPatchApplicationFailure;
return -1;
}
}
diff --git a/updater/updater.cpp b/updater/updater.cpp
index 1be8b6040..f5ff6df91 100644
--- a/updater/updater.cpp
+++ b/updater/updater.cpp
@@ -202,6 +202,10 @@ int main(int argc, char** argv) {
// Cause code should provide additional information about the abort.
if (state.cause_code != kNoCause) {
fprintf(cmd_pipe, "log cause: %d\n", state.cause_code);
+ if (state.cause_code == kPatchApplicationFailure) {
+ LOG(INFO) << "Patch application failed, retry update.";
+ fprintf(cmd_pipe, "retry_update\n");
+ }
}
if (updater_info.package_zip) {