From da92659961ee8934d534b53d136f0dd4aeb6578b Mon Sep 17 00:00:00 2001 From: Sarp Misoglu Date: Mon, 16 Dec 2024 18:00:55 +0000 Subject: Check backup wakelock is held before releasing This is to prevent a rare crash that can happen if something releases the wakelock beforehand. I'm not sure exactly what sequence of events leads to the crash scenario but this seems like a sensible check to have anyway since we have multiple operations that can acquire/release the wakelock. Flag: EXEMPT bugfix Fixes: 349280741 Test: CtsBackupTestCases, CtsBackupHostTestCases Change-Id: I4a5c7ea0cf381de051a4a4afdf2426f9715515c8 --- .../java/com/android/server/backup/UserBackupManagerService.java | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'services/backup/java') diff --git a/services/backup/java/com/android/server/backup/UserBackupManagerService.java b/services/backup/java/com/android/server/backup/UserBackupManagerService.java index 3025e2eaede0..549f8fa77b53 100644 --- a/services/backup/java/com/android/server/backup/UserBackupManagerService.java +++ b/services/backup/java/com/android/server/backup/UserBackupManagerService.java @@ -217,6 +217,13 @@ public class UserBackupManagerService { + mPowerManagerWakeLock.getTag())); return; } + + if (!mPowerManagerWakeLock.isHeld()) { + Slog.w(TAG, addUserIdToLogMessage(mUserId, + "Wakelock not held: " + mPowerManagerWakeLock.getTag())); + return; + } + mPowerManagerWakeLock.release(); Slog.v( TAG, -- cgit v1.2.3-59-g8ed1b