From ec4306ac39c20657880976854668ff0d7deb0270 Mon Sep 17 00:00:00 2001 From: Michael Wright Date: Mon, 12 Jul 2021 14:27:25 +0100 Subject: [PATCH] Log failures to unlinkToDeath wakelocks. Some wakelocks are throwing an exception when unlinking. This should be impossible, so start catching and logging failures as WTFs so they get uploaded when it happens again. Fixes: 182841946 Bug: 180891878 Test: N/A Change-Id: I9e7a0aa745852178cbfd793451e150e34e7b5488 --- .../java/com/android/server/power/PowerManagerService.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java index 9638255dfc799..db69158e63c16 100644 --- a/services/core/java/com/android/server/power/PowerManagerService.java +++ b/services/core/java/com/android/server/power/PowerManagerService.java @@ -129,6 +129,7 @@ import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.NoSuchElementException; import java.util.Objects; /** @@ -1490,7 +1491,11 @@ public final class PowerManagerService extends SystemService mRequestWaitForNegativeProximity = true; } - wakeLock.mLock.unlinkToDeath(wakeLock, 0); + try { + wakeLock.mLock.unlinkToDeath(wakeLock, 0); + } catch (NoSuchElementException e) { + Slog.wtf(TAG, "Failed to unlink wakelock", e); + } removeWakeLockLocked(wakeLock, index); } }