Merge "Improve logging for why a staged session was reverted"
This commit is contained in:
@@ -1060,7 +1060,9 @@ class PackageManagerShellCommand extends ShellCommand {
|
||||
+ "; isStaged = " + session.isStaged()
|
||||
+ "; isReady = " + session.isStagedSessionReady()
|
||||
+ "; isApplied = " + session.isStagedSessionApplied()
|
||||
+ "; isFailed = " + session.isStagedSessionFailed() + ";");
|
||||
+ "; isFailed = " + session.isStagedSessionFailed()
|
||||
+ "; errorMsg = " + session.getStagedSessionErrorMessage()
|
||||
+ ";");
|
||||
}
|
||||
|
||||
private Intent parseIntentAndUser() throws URISyntaxException {
|
||||
|
||||
@@ -605,13 +605,14 @@ public class StagingManager {
|
||||
// If checkpoint is supported, then we only resume sessions if we are in checkpointing
|
||||
// mode. If not, we fail all sessions.
|
||||
if (supportsCheckpoint() && !needsCheckpoint()) {
|
||||
String errorMsg = "Reverting back to safe state. Marking " + session.sessionId
|
||||
+ " as failed";
|
||||
if (!TextUtils.isEmpty(mFailureReason)) {
|
||||
errorMsg = errorMsg + ": " + mFailureReason;
|
||||
String revertMsg = "Reverting back to safe state. Marking "
|
||||
+ session.sessionId + " as failed.";
|
||||
final String reasonForRevert = getReasonForRevert();
|
||||
if (!TextUtils.isEmpty(reasonForRevert)) {
|
||||
revertMsg += " Reason for revert: " + reasonForRevert;
|
||||
}
|
||||
Slog.d(TAG, errorMsg);
|
||||
session.setStagedSessionFailed(SessionInfo.STAGED_SESSION_UNKNOWN, errorMsg);
|
||||
Slog.d(TAG, revertMsg);
|
||||
session.setStagedSessionFailed(SessionInfo.STAGED_SESSION_UNKNOWN, revertMsg);
|
||||
return;
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
@@ -715,6 +716,16 @@ public class StagingManager {
|
||||
}
|
||||
}
|
||||
|
||||
private String getReasonForRevert() {
|
||||
if (!TextUtils.isEmpty(mFailureReason)) {
|
||||
return mFailureReason;
|
||||
}
|
||||
if (!TextUtils.isEmpty(mNativeFailureReason)) {
|
||||
return "Session reverted due to crashing native process: " + mNativeFailureReason;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
private List<String> findAPKsInDir(File stageDir) {
|
||||
List<String> ret = new ArrayList<>();
|
||||
if (stageDir != null && stageDir.exists()) {
|
||||
|
||||
Reference in New Issue
Block a user