summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author shafik <shafik@google.com> 2019-05-01 20:41:48 +0100
committer Shafik Nassar <shafik@google.com> 2019-05-08 15:22:33 +0000
commit18b627ecd6486579626261f595c772f679e12b6e (patch)
tree2a1fc4ef34d8bc6811a8bdda29e3c7ac53cba254
parent28c538d2896ab379ba9d87c3c1253e2d5d2f5d89 (diff)
Monitor RollbackManagerServiceImpl#mHandlerThread
Bug: 131744749 Test: atest RollbackTest Test: atest StagedRollbackTest Change-Id: I832f2ac58f4a094f1f753e371f2bc5e2f8900262
-rw-r--r--services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java7
1 files changed, 7 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java b/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java
index db2c742b8d4e..94d397adeb09 100644
--- a/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java
+++ b/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java
@@ -59,6 +59,7 @@ import com.android.internal.annotations.GuardedBy;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.IndentingPrintWriter;
import com.android.server.LocalServices;
+import com.android.server.Watchdog;
import com.android.server.pm.Installer;
import java.io.File;
@@ -100,6 +101,9 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
// handler threads are running so that's fine.
private long mRollbackLifetimeDurationInMillis = DEFAULT_ROLLBACK_LIFETIME_DURATION_MILLIS;
+ private static final long HANDLER_THREAD_TIMEOUT_DURATION_MILLIS =
+ TimeUnit.MINUTES.toMillis(10);
+
// Used for generating rollback IDs.
private final Random mRandom = new SecureRandom();
@@ -146,6 +150,9 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
mHandlerThread = new HandlerThread("RollbackManagerServiceHandler");
mHandlerThread.start();
+ // Monitor the handler thread
+ Watchdog.getInstance().addThread(getHandler(), HANDLER_THREAD_TIMEOUT_DURATION_MILLIS);
+
mRollbackStore = new RollbackStore(new File(Environment.getDataDirectory(), "rollback"));
mPackageHealthObserver = new RollbackPackageHealthObserver(mContext);