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
diff --git a/services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java b/services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java
index b12789c..e437be8 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 @@
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 @@
}
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 @@
}
@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 @@
for (RollbackInfo rollback : rollbacks) {
VersionedPackage sample = rollback.getPackages().get(0).getVersionRolledBackFrom();
- rollbackPackage(rollback, sample, PackageWatchdog.FAILURE_REASON_NATIVE_CRASH);
+ rollbackPackage(rollback, sample, rollbackReason);
}
}
}