Skip to content

Commit 065077e

Browse files
JW WangInVictusXV
authored andcommitted
Don't abandon child sessions (1/n)
It will throw if abandon() is called on a child session. Bug: 211944991 Bug: 67862680 Test: to be added Change-Id: Ib0ba9f3786dda2d3174f3ea8c65d1061a3fcb586 Merged-In: Ib0ba9f3786dda2d3174f3ea8c65d1061a3fcb586 (cherry picked from commit 8b67e7d) (cherry picked from commit c685f8b) Merged-In:Ib0ba9f3786dda2d3174f3ea8c65d1061a3fcb586
1 parent 9130e61 commit 065077e

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

services/core/java/com/android/server/pm/PackageInstallerService.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,11 @@ public void freeStageDirs(String volumeUuid) {
349349
if (age >= MAX_SESSION_AGE_ON_LOW_STORAGE_MILLIS) {
350350
// Aggressively close old sessions because we are running low on storage
351351
// Their staging dirs will be removed too
352-
session.abandon();
352+
PackageInstallerSession root = !session.hasParentSessionId()
353+
? session : mSessions.get(session.getParentSessionId());
354+
if (!root.isDestroyed()) {
355+
root.abandon();
356+
}
353357
} else {
354358
// Session is new enough, so it deserves to be kept even on low storage
355359
unclaimedStagingDirsOnVolume.remove(session.stageDir);

0 commit comments

Comments
 (0)