From ab2fc348fd2909749a79a33a3f463ce8f371d859 Mon Sep 17 00:00:00 2001 From: Zimuzo Date: Fri, 14 Jun 2019 11:47:45 +0100 Subject: [PATCH] Pause watchdog triggering on the main thread during package scan Similar to I3876c41e6d0e41d044a5b1d5e57f894c7fb4fb0e and I69067fbbb8be4e421918c18b67269044fab51b3e where we pause the watchdog because dexopting and moving A/B artifacts can take a while, here scanning packages can take a long time depending on the number of apps installed on the device. Bug: 135103243 Test: Manually tested by adding an artificial sleep in PackageManagerService#main and verified that watchdog was not triggered Change-Id: Ia5b2b5741194a33f7cd09e79c0904696ce546026 Merged-In: Ia5b2b5741194a33f7cd09e79c0904696ce546026 --- services/java/com/android/server/SystemServer.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index 203704bf72243..6dd85270e7e8b 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -731,8 +731,13 @@ public final class SystemServer { (int) SystemClock.elapsedRealtime()); } traceBeginAndSlog("StartPackageManagerService"); - mPackageManagerService = PackageManagerService.main(mSystemContext, installer, - mFactoryTestMode != FactoryTest.FACTORY_TEST_OFF, mOnlyCore); + try { + Watchdog.getInstance().pauseWatchingCurrentThread("packagemanagermain"); + mPackageManagerService = PackageManagerService.main(mSystemContext, installer, + mFactoryTestMode != FactoryTest.FACTORY_TEST_OFF, mOnlyCore); + } finally { + Watchdog.getInstance().resumeWatchingCurrentThread("packagemanagermain"); + } mFirstBoot = mPackageManagerService.isFirstBoot(); mPackageManager = mSystemContext.getPackageManager(); traceEnd();