Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 82742226 authored by Nikita Ioffe's avatar Nikita Ioffe
Browse files

Propagate ROLLBACK_IN_PROGRESS and ROLLED_BACK states to StagingManager

Both of them should fail a staged session.

Bug: 123622800
Test: Manually triggered watchdog initiated rollback
Change-Id: Ic41a28bfda2313a4de100a990f38e1c9e221ec73
parent 0eedd597
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -286,6 +286,12 @@ class ApexManager {
                    ipw.println("State: ACTIVATED");
                } else if (si.isActivationFailed) {
                    ipw.println("State: ACTIVATION FAILED");
                } else if (si.isSuccess) {
                    ipw.println("State: SUCCESS");
                } else if (si.isRollbackInProgress) {
                    ipw.println("State: ROLLBACK IN PROGRESS");
                } else if (si.isRolledBack) {
                    ipw.println("State: ROLLED BACK");
                }
                ipw.decreaseIndent();
            }
+8 −2
Original line number Diff line number Diff line
@@ -257,7 +257,7 @@ public class StagingManager {
                        + "activated");
                return;
            }
            if (apexSessionInfo.isActivationFailed || apexSessionInfo.isUnknown) {
            if (isApexSessionFailed(apexSessionInfo)) {
                session.setStagedSessionFailed(SessionInfo.STAGED_SESSION_ACTIVATION_FAILED,
                        "APEX activation failed. Check logcat messages from apexd for "
                                + "more information.");
@@ -468,7 +468,13 @@ public class StagingManager {
        ApexSessionInfo session = mApexManager.getStagedSessionInfo(sessionId);

        /* checking if the session is in a final state, i.e., not active anymore */
        return session.isUnknown || session.isActivationFailed || session.isSuccess;
        return session.isUnknown || session.isActivationFailed || session.isSuccess
                || session.isRolledBack;
    }

    private static boolean isApexSessionFailed(ApexSessionInfo apexSessionInfo) {
        return apexSessionInfo.isActivationFailed || apexSessionInfo.isUnknown
                || apexSessionInfo.isRolledBack;
    }

    @GuardedBy("mStagedSessions")