summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Harshit Mahajan <harshitmahajan@google.com> 2023-03-21 16:54:42 +0000
committer Harshit Mahajan <harshitmahajan@google.com> 2023-04-11 15:39:02 +0000
commit836e3fb6893ed1ddabaf7ec2c4dd6bc988d94649 (patch)
treea398f56fedc989981710837a740e5225c1e13603
parentbb4675df3f1094739ab54c485231cbddd5a9c851 (diff)
Fix rollback reason in rollback all case
Prior to the changes ag/21612554, the only case where rollback all was being executed only when there was NATIVE_CRASH, so hardcoding it was working. Since now it's not the case, we need to pass the correct failure reason for execution of rollback all. Bug: b/273585148 Test: atest CtsRootRollbackManagerHostTestCases:com.android.cts_root.rollback.host.RollbackManagerHostTest#testBadApkOnly -- --abi x86_64 Change-Id: I7f77a77ec7935a6327bb758c3398f35389facaf2 (cherry picked from commit f25aeda05885e826db5b0840d4481d134eea4acf) Merged-In: I7f77a77ec7935a6327bb758c3398f35389facaf2
-rw-r--r--services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java8
1 files changed, 4 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java b/services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java
index b12789c94a7c..e437be8e01b5 100644
--- a/services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java
+++ b/services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java
@@ -129,7 +129,7 @@ final class RollbackPackageHealthObserver implements PackageHealthObserver {
public boolean execute(@Nullable VersionedPackage failedPackage,
@FailureReasons int rollbackReason, int mitigationCount) {
if (rollbackReason == PackageWatchdog.FAILURE_REASON_NATIVE_CRASH) {
- mHandler.post(this::rollbackAll);
+ mHandler.post(() -> rollbackAll(rollbackReason));
return true;
}
@@ -141,7 +141,7 @@ final class RollbackPackageHealthObserver implements PackageHealthObserver {
}
mHandler.post(() -> rollbackPackage(rollback, failedPackage, rollbackReason));
} else if (mitigationCount > 1) {
- mHandler.post(this::rollbackAll);
+ mHandler.post(() -> rollbackAll(rollbackReason));
}
// Assume rollbacks executed successfully
@@ -478,7 +478,7 @@ final class RollbackPackageHealthObserver implements PackageHealthObserver {
}
@WorkerThread
- private void rollbackAll() {
+ private void rollbackAll(@FailureReasons int rollbackReason) {
assertInWorkerThread();
RollbackManager rollbackManager = mContext.getSystemService(RollbackManager.class);
List<RollbackInfo> rollbacks = rollbackManager.getAvailableRollbacks();
@@ -497,7 +497,7 @@ final class RollbackPackageHealthObserver implements PackageHealthObserver {
for (RollbackInfo rollback : rollbacks) {
VersionedPackage sample = rollback.getPackages().get(0).getVersionRolledBackFrom();
- rollbackPackage(rollback, sample, PackageWatchdog.FAILURE_REASON_NATIVE_CRASH);
+ rollbackPackage(rollback, sample, rollbackReason);
}
}
}