Skip to content

Commit c685f8b

Browse files
JW Wangschfan-1
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)
1 parent cccf191 commit c685f8b

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
@@ -345,7 +345,11 @@ public void freeStageDirs(String volumeUuid) {
345345
if (age >= MAX_SESSION_AGE_ON_LOW_STORAGE_MILLIS) {
346346
// Aggressively close old sessions because we are running low on storage
347347
// Their staging dirs will be removed too
348-
session.abandon();
348+
PackageInstallerSession root = !session.hasParentSessionId()
349+
? session : mSessions.get(session.getParentSessionId());
350+
if (!root.isDestroyed()) {
351+
root.abandon();
352+
}
349353
} else {
350354
// Session is new enough, so it deserves to be kept even on low storage
351355
unclaimedStagingDirsOnVolume.remove(session.stageDir);

0 commit comments

Comments
 (0)