summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenny Root <kroot@google.com>2010-07-28 14:47:01 -0700
committerKenny Root <kroot@google.com>2011-04-12 13:08:12 -0700
commit868cee7672ab7186c0aaa51e871f82eeff143d7b (patch)
tree3e8dda21bc60c905bea1ccb13e40d4e5b4d81fbb
parentc5fd90339025d77dc08b2b1f081e851c0bc273b2 (diff)
downloadbase-868cee7672ab7186c0aaa51e871f82eeff143d7b.tar.gz
Remove stale temporary ASEC containersandroid-cts-2.2_r6
When a temporary container is created, its existence should be ephemeral. However, if there is an error that causes system_server to be killed during the process of creating a finalized ASEC, delete the stale containers on the next start-up of system_server. Change-Id: I429dfe1e4b592595865235e83b6055aa8c3126ae
-rw-r--r--services/java/com/android/server/PackageManagerService.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/services/java/com/android/server/PackageManagerService.java b/services/java/com/android/server/PackageManagerService.java
index 78629607e90b..3489fe91c602 100644
--- a/services/java/com/android/server/PackageManagerService.java
+++ b/services/java/com/android/server/PackageManagerService.java
@@ -9702,10 +9702,15 @@ class PackageManagerService extends IPackageManager.Stub {
if (doGc) {
Runtime.getRuntime().gc();
}
- // List stale containers.
+ // List stale containers and destroy stale temporary containers.
if (removeCids != null) {
for (String cid : removeCids) {
- Log.w(TAG, "Container " + cid + " is stale");
+ if (cid.startsWith(mTempContainerPrefix)) {
+ Log.i(TAG, "Destroying stale temporary container " + cid);
+ PackageHelper.destroySdDir(cid);
+ } else {
+ Log.w(TAG, "Container " + cid + " is stale");
+ }
}
}
}