OSDN Git Service

Improving WTF logging in AlarmManager
authorSuprabh Shukla <suprabh@google.com>
Wed, 27 Jun 2018 23:40:55 +0000 (16:40 -0700)
committerSuprabh Shukla <suprabh@google.com>
Thu, 28 Jun 2018 21:49:39 +0000 (21:49 +0000)
Logs could have been misleading if the alarm thread was switched out and
did not get to process alarms for some time.

Test: Builds, boots, existing tests CtsAlarmManagerTestCases pass

Bug: 78560047
Change-Id: Ib450c3f7a936ab127cbd9d87eff78f1c589d9701

services/core/java/com/android/server/AlarmManagerService.java

index 3261209..cc5acdf 100644 (file)
@@ -2685,19 +2685,23 @@ class AlarmManagerService extends SystemService {
     private void validateLastAlarmExpiredLocked(long nowElapsed) {
         final StringBuilder errorMsg = new StringBuilder();
         boolean stuck = false;
-        if (mNextNonWakeup < nowElapsed && mLastWakeup < (mNextNonWakeup - 30_000)) {
+        if (mNextNonWakeup < (nowElapsed - 10_000) && mLastWakeup < mNextNonWakeup) {
             stuck = true;
             errorMsg.append("[mNextNonWakeup=");
             TimeUtils.formatDuration(mNextNonWakeup - nowElapsed, errorMsg);
+            errorMsg.append(" set at ");
+            TimeUtils.formatDuration(mNextNonWakeUpSetAt, errorMsg);
             errorMsg.append(", mLastWakeup=");
             TimeUtils.formatDuration(mLastWakeup - nowElapsed, errorMsg);
             errorMsg.append(", timerfd_gettime=" + getNextAlarm(mNativeData, ELAPSED_REALTIME));
             errorMsg.append("];");
         }
-        if (mNextWakeup < nowElapsed && mLastWakeup < (mNextWakeup - 30_000)) {
+        if (mNextWakeup < (nowElapsed - 10_000) && mLastWakeup < mNextWakeup) {
             stuck = true;
             errorMsg.append("[mNextWakeup=");
             TimeUtils.formatDuration(mNextWakeup - nowElapsed, errorMsg);
+            errorMsg.append(" set at ");
+            TimeUtils.formatDuration(mNextWakeUpSetAt, errorMsg);
             errorMsg.append(", mLastWakeup=");
             TimeUtils.formatDuration(mLastWakeup - nowElapsed, errorMsg);
             errorMsg.append(", timerfd_gettime="