From 80005cd6973150135149ef633ca34d3090c45d47 Mon Sep 17 00:00:00 2001 From: JW Wang Date: Tue, 13 Apr 2021 16:12:29 +0800 Subject: [PATCH] Rollbacks shouldn't be removed when it session expires (1/n) Once a rollback is made available, the status of its associated session no longer matters. Bug: 185132440 Test: Will be added in next CL Test: atest StagedRollbackTest Change-Id: I3c2b718905d2d7619d6f299ee5402fd858de030e --- .../server/rollback/RollbackManagerServiceImpl.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java b/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java index 4adcfb62ef509..9e19f57ed0e2d 100644 --- a/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java +++ b/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java @@ -613,9 +613,11 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub implements Rollba PackageInstaller.SessionInfo session = mContext.getPackageManager() .getPackageInstaller().getSessionInfo(rollback.getStagedSessionId()); if (session == null || session.isStagedSessionFailed()) { - iter.remove(); - deleteRollback(rollback, - "Session " + rollback.getStagedSessionId() + " not existed or failed"); + if (rollback.isEnabling()) { + iter.remove(); + deleteRollback(rollback, "Session " + rollback.getStagedSessionId() + + " not existed or failed"); + } continue; }