aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKelvin Zhang <zhangkelvin@google.com>2023-12-04 22:49:40 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-12-04 22:49:40 +0000
commitcf67336c4503e0c565cf3aba359949906d2283d9 (patch)
tree415fba94797f79e36b388e9257f570f1e55b276b
parent571e875e0cfef553b9f740d9b86f03cbb394de96 (diff)
parent153cda4650ac4bfb5a21b2ed985bab1e53112cae (diff)
downloadupdate_engine-cf67336c4503e0c565cf3aba359949906d2283d9.tar.gz
Add specific error codes to enable better error handling am: be0a349a6d am: 69152be17b am: 153cda4650
Original change: https://android-review.googlesource.com/c/platform/system/update_engine/+/2857466 Change-Id: I7e164bd74e4697f828e763e52c93310b5fc8149a Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--aosp/update_attempter_android.cc20
-rw-r--r--common/error_code.h2
-rw-r--r--common/error_code_utils.cc4
-rw-r--r--metrics_utils.cc4
4 files changed, 20 insertions, 10 deletions
diff --git a/aosp/update_attempter_android.cc b/aosp/update_attempter_android.cc
index ea83d9a8..0f4b2e4b 100644
--- a/aosp/update_attempter_android.cc
+++ b/aosp/update_attempter_android.cc
@@ -242,18 +242,18 @@ bool UpdateAttempterAndroid::ApplyPayload(
const vector<string>& key_value_pair_headers,
Error* error) {
if (status_ == UpdateStatus::UPDATED_NEED_REBOOT) {
- return LogAndSetGenericError(
- error,
- __LINE__,
- __FILE__,
- "An update already applied, waiting for reboot");
+ return LogAndSetError(error,
+ __LINE__,
+ __FILE__,
+ "An update already applied, waiting for reboot",
+ ErrorCode::kUpdateAlreadyInstalled);
}
if (processor_->IsRunning()) {
- return LogAndSetGenericError(
- error,
- __LINE__,
- __FILE__,
- "Already processing an update, cancel it first.");
+ return LogAndSetError(error,
+ __LINE__,
+ __FILE__,
+ "Already processing an update, cancel it first.",
+ ErrorCode::kUpdateProcessing);
}
DCHECK_EQ(status_, UpdateStatus::IDLE);
diff --git a/common/error_code.h b/common/error_code.h
index 79245797..8954f720 100644
--- a/common/error_code.h
+++ b/common/error_code.h
@@ -88,6 +88,8 @@ enum class ErrorCode : int {
kPackageExcludedFromUpdate = 62,
kPostInstallMountError = 63,
kOverlayfsenabledError = 64,
+ kUpdateProcessing = 65,
+ kUpdateAlreadyInstalled = 66,
// VERY IMPORTANT! When adding new error codes:
//
diff --git a/common/error_code_utils.cc b/common/error_code_utils.cc
index 12a98bf8..421e1249 100644
--- a/common/error_code_utils.cc
+++ b/common/error_code_utils.cc
@@ -177,6 +177,10 @@ string ErrorCodeToString(ErrorCode code) {
return "ErrorCode::kPostInstallMountError";
case ErrorCode::kOverlayfsenabledError:
return "ErrorCode::kOverlayfsenabledError";
+ case ErrorCode::kUpdateProcessing:
+ return "ErrorCode::kUpdateProcessing";
+ case ErrorCode::kUpdateAlreadyInstalled:
+ return "ErrorCode::kUpdateAlreadyInstalled";
// Don't add a default case to let the compiler warn about newly added
// error codes which should be added here.
}
diff --git a/metrics_utils.cc b/metrics_utils.cc
index 94a05201..35bbcf4c 100644
--- a/metrics_utils.cc
+++ b/metrics_utils.cc
@@ -138,6 +138,8 @@ metrics::AttemptResult GetAttemptResult(ErrorCode code) {
case ErrorCode::kTestImageFlag:
case ErrorCode::kTestOmahaUrlFlag:
case ErrorCode::kSpecialFlags:
+ case ErrorCode::kUpdateProcessing:
+ case ErrorCode::kUpdateAlreadyInstalled:
break;
}
@@ -245,6 +247,8 @@ metrics::DownloadErrorCode GetDownloadErrorCode(ErrorCode code) {
case ErrorCode::kNotEnoughSpace:
case ErrorCode::kDeviceCorrupted:
case ErrorCode::kPackageExcludedFromUpdate:
+ case ErrorCode::kUpdateProcessing:
+ case ErrorCode::kUpdateAlreadyInstalled:
break;
// Special flags. These can't happen (we mask them out above) but