diff options
author | Kelvin Zhang <zhangkelvin@google.com> | 2023-12-04 22:49:40 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-12-04 22:49:40 +0000 |
commit | cf67336c4503e0c565cf3aba359949906d2283d9 (patch) | |
tree | 415fba94797f79e36b388e9257f570f1e55b276b | |
parent | 571e875e0cfef553b9f740d9b86f03cbb394de96 (diff) | |
parent | 153cda4650ac4bfb5a21b2ed985bab1e53112cae (diff) | |
download | update_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.cc | 20 | ||||
-rw-r--r-- | common/error_code.h | 2 | ||||
-rw-r--r-- | common/error_code_utils.cc | 4 | ||||
-rw-r--r-- | metrics_utils.cc | 4 |
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 |