Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4a63af5f authored by Jing Ji's avatar Jing Ji Committed by Automerger Merge Worker
Browse files

Merge "Throttle the dropbox logs per event-type" into rvc-dev am: 559a551a am: 00ba82c2

Change-Id: I0b611e034e7c4c7fb49469f7290f3afcfc9e41c9
parents 43cba792 00ba82c2
Loading
Loading
Loading
Loading
+11 −7
Original line number Diff line number Diff line
@@ -10156,8 +10156,7 @@ public class ActivityManagerService extends IActivityManager.Stub
        }
    }
    private volatile long mWtfClusterStart;
    private volatile int mWtfClusterCount;
    private volatile ArrayMap<String, long[]> mErrorClusterRecords = new ArrayMap<>();
    /**
     * Write a description of an error (crash, WTF, ANR) to the drop box.
@@ -10188,13 +10187,18 @@ public class ActivityManagerService extends IActivityManager.Stub
        if (dbox == null || !dbox.isTagEnabled(dropboxTag)) return;
        // Rate-limit how often we're willing to do the heavy lifting below to
        // collect and record logs; currently 5 logs per 10 second period.
        // collect and record logs; currently 5 logs per 10 second period per eventType.
        final long now = SystemClock.elapsedRealtime();
        if (now - mWtfClusterStart > 10 * DateUtils.SECOND_IN_MILLIS) {
            mWtfClusterStart = now;
            mWtfClusterCount = 1;
        long[] errRecord = mErrorClusterRecords.get(eventType);
        if (errRecord == null) {
            errRecord = new long[2]; // [0]: startTime, [1]: count
            mErrorClusterRecords.put(eventType, errRecord);
        }
        if (now - errRecord[0] > 10 * DateUtils.SECOND_IN_MILLIS) {
            errRecord[0] = now;
            errRecord[1] = 1L;
        } else {
            if (mWtfClusterCount++ >= 5) return;
            if (errRecord[1]++ >= 5) return;
        }
        final StringBuilder sb = new StringBuilder(1024);