From b4d82e7245b3c8e5d90c60ac6299c176e4683340 Mon Sep 17 00:00:00 2001 From: Hui Yu Date: Wed, 31 Aug 2022 09:01:08 -0700 Subject: [PATCH] Resolve the deadlock caused by unfreezeProcess(). Restore unfreezeProcess() to previous "quick unfreeze" code, also add a quick logging for REPORT_UNFREEZE_MSG. Bug: 244113346 Test: statsd_testdrive 254 Change-Id: I30f0d969a7f540ea6f4a392a904b59692c7e4d72 --- .../com/android/server/am/CachedAppOptimizer.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/am/CachedAppOptimizer.java b/services/core/java/com/android/server/am/CachedAppOptimizer.java index 653b6026944b6..55fc6c559d91d 100644 --- a/services/core/java/com/android/server/am/CachedAppOptimizer.java +++ b/services/core/java/com/android/server/am/CachedAppOptimizer.java @@ -1351,7 +1351,18 @@ public final class CachedAppOptimizer { return; } Slog.d(TAG_AM, "quick sync unfreeze " + pid); - unfreezeAppLSP(app, reason); + try { + freezeBinder(pid, false); + } catch (RuntimeException e) { + Slog.e(TAG_AM, "Unable to quick unfreeze binder for " + pid); + return; + } + + try { + Process.setProcessFrozen(pid, app.uid, false); + } catch (Exception e) { + Slog.e(TAG_AM, "Unable to quick unfreeze " + pid); + } } }