aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKelvin Zhang <zhangkelvin@google.com>2023-12-04 21:41:56 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-12-04 21:41:56 +0000
commit10eb0870a6d74978ad8399a8979579d1117579a6 (patch)
tree415fba94797f79e36b388e9257f570f1e55b276b
parent13d28e0c059ab6076228b857e8eec3c7481f88ee (diff)
parentbe0a349a6def612267aa3640c18fe4b0b79a3adc (diff)
downloadupdate_engine-10eb0870a6d74978ad8399a8979579d1117579a6.tar.gz
Add specific error codes to enable better error handling am: be0a349a6d
Original change: https://android-review.googlesource.com/c/platform/system/update_engine/+/2857466 Change-Id: I0b3c65370ff18e615c6b853f934cfc7951d5c213 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