diff options
4 files changed, 14 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java b/services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java index 8d090f1b6fce..801d75b90a54 100644 --- a/services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java +++ b/services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java @@ -218,11 +218,7 @@ public final class RollbackPackageHealthObserver implements PackageHealthObserve packageInstaller.getSessionInfo(sessionId); if (sessionInfo.isStagedSessionReady() && markStagedSessionHandled(rollbackId)) { mContext.unregisterReceiver(listener); - if (logPackage != null) { - // We save the rollback id so that after reboot, we can log if rollback was - // successful or not. If logPackage is null, then there is nothing to log. - saveStagedRollbackId(rollbackId); - } + saveStagedRollbackId(rollbackId); WatchdogRollbackLogger.logEvent(logPackage, FrameworkStatsLog .WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_BOOT_TRIGGERED, diff --git a/services/core/java/com/android/server/rollback/WatchdogRollbackLogger.java b/services/core/java/com/android/server/rollback/WatchdogRollbackLogger.java index 1be6f227b44b..659de0093ead 100644 --- a/services/core/java/com/android/server/rollback/WatchdogRollbackLogger.java +++ b/services/core/java/com/android/server/rollback/WatchdogRollbackLogger.java @@ -159,6 +159,12 @@ public final class WatchdogRollbackLogger { return; } + // If no logging packages are found, use a null package to ensure the rollback status + // is still logged. + if (oldLoggingPackages.isEmpty()) { + oldLoggingPackages.add(null); + } + for (VersionedPackage oldLoggingPackage : oldLoggingPackages) { if (sessionInfo.isStagedSessionApplied()) { logEvent(oldLoggingPackage, diff --git a/tests/RollbackTest/NetworkStagedRollbackTest/src/com/android/tests/rollback/host/NetworkStagedRollbackTest.java b/tests/RollbackTest/NetworkStagedRollbackTest/src/com/android/tests/rollback/host/NetworkStagedRollbackTest.java index d4e34f97a8d2..f6dcff49c80c 100644 --- a/tests/RollbackTest/NetworkStagedRollbackTest/src/com/android/tests/rollback/host/NetworkStagedRollbackTest.java +++ b/tests/RollbackTest/NetworkStagedRollbackTest/src/com/android/tests/rollback/host/NetworkStagedRollbackTest.java @@ -53,6 +53,7 @@ public class NetworkStagedRollbackTest extends BaseHostJUnit4Test { private static final String ROLLBACK_INITIATE = "ROLLBACK_INITIATE"; private static final String ROLLBACK_BOOT_TRIGGERED = "ROLLBACK_BOOT_TRIGGERED"; + private static final String ROLLBACK_SUCCESS = "ROLLBACK_SUCCESS"; private WatchdogEventLogger mLogger = new WatchdogEventLogger(); @@ -93,6 +94,7 @@ public class NetworkStagedRollbackTest extends BaseHostJUnit4Test { REASON_EXPLICIT_HEALTH_CHECK, null)); assertTrue(watchdogEventOccurred(watchdogEvents, ROLLBACK_BOOT_TRIGGERED, null, null, null)); + assertTrue(watchdogEventOccurred(watchdogEvents, ROLLBACK_SUCCESS, null, null, null)); } finally { // Reconnect internet again so we won't break tests which assume internet available getDevice().executeShellCommand("svc wifi enable"); diff --git a/tests/RollbackTest/StagedRollbackTest/src/com/android/tests/rollback/host/StagedRollbackTest.java b/tests/RollbackTest/StagedRollbackTest/src/com/android/tests/rollback/host/StagedRollbackTest.java index 43759cf4b761..4afebb58c105 100644 --- a/tests/RollbackTest/StagedRollbackTest/src/com/android/tests/rollback/host/StagedRollbackTest.java +++ b/tests/RollbackTest/StagedRollbackTest/src/com/android/tests/rollback/host/StagedRollbackTest.java @@ -76,10 +76,10 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { private static final String REASON_APP_CRASH = "REASON_APP_CRASH"; private static final String REASON_NATIVE_CRASH = "REASON_NATIVE_CRASH"; - private static final String REASON_EXPLICIT_HEALTH_CHECK = "REASON_EXPLICIT_HEALTH_CHECK"; private static final String ROLLBACK_INITIATE = "ROLLBACK_INITIATE"; private static final String ROLLBACK_BOOT_TRIGGERED = "ROLLBACK_BOOT_TRIGGERED"; + private static final String ROLLBACK_SUCCESS = "ROLLBACK_SUCCESS"; private WatchdogEventLogger mLogger = new WatchdogEventLogger(); @@ -146,6 +146,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { REASON_APP_CRASH, TESTAPP_A)); assertTrue(watchdogEventOccurred(watchdogEvents, ROLLBACK_BOOT_TRIGGERED, null, null, null)); + assertTrue(watchdogEventOccurred(watchdogEvents, ROLLBACK_SUCCESS, null, null, null)); } @Test @@ -179,6 +180,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { REASON_NATIVE_CRASH, null)); assertTrue(watchdogEventOccurred(watchdogEvents, ROLLBACK_BOOT_TRIGGERED, null, null, null)); + assertTrue(watchdogEventOccurred(watchdogEvents, ROLLBACK_SUCCESS, null, null, null)); } @Test @@ -219,6 +221,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { REASON_NATIVE_CRASH, null)); assertTrue(watchdogEventOccurred(watchdogEvents, ROLLBACK_BOOT_TRIGGERED, null, null, null)); + assertTrue(watchdogEventOccurred(watchdogEvents, ROLLBACK_SUCCESS, null, null, null)); } /** @@ -290,6 +293,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test { REASON_APP_CRASH, TESTAPP_A)); assertTrue(watchdogEventOccurred(watchdogEvents, ROLLBACK_BOOT_TRIGGERED, null, null, null)); + assertTrue(watchdogEventOccurred(watchdogEvents, ROLLBACK_SUCCESS, null, null, null)); } /** |