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

Commit e4c818f4 authored by Michael Wachenschwanz's avatar Michael Wachenschwanz
Browse files

Log Wtf when UsageStats missing over a day of events

Bug: 110930764
Test: manual (hardcode future time in printLast24HrEvents)
Change-Id: Ia254f7512bfa549966dda3674140772504dbbffd
parent f52474bc
Loading
Loading
Loading
Loading
+35 −0
Original line number Diff line number Diff line
@@ -64,6 +64,9 @@ class UserUsageStatsService {
    private String mLastBackgroundedPackage;
    private final int mUserId;

    // STOPSHIP: Temporary member variable for debugging b/110930764.
    private UsageEvents.Event mLastEvent;

    private static final long[] INTERVAL_LENGTH = new long[] {
            UnixCalendar.DAY_IN_MILLIS, UnixCalendar.WEEK_IN_MILLIS,
            UnixCalendar.MONTH_IN_MILLIS, UnixCalendar.YEAR_IN_MILLIS
@@ -156,6 +159,8 @@ class UserUsageStatsService {
                    + eventToString(event.mEventType));
        }

        mLastEvent = new UsageEvents.Event(event);

        if (event.mTimeStamp >= mDailyExpiryDate.getTimeInMillis()) {
            // Need to rollover
            rolloverStats(event.mTimeStamp);
@@ -306,6 +311,36 @@ class UserUsageStatsService {
                Slog.d(TAG, mLogPrefix + "Requesting stats after " + beginTime + " but latest is "
                        + currentStats.endTime);
            }

            // STOPSHIP: Temporary logging for b/110930764.
            if (intervalType == UsageStatsManager.INTERVAL_DAILY
                    && mLastEvent.mTimeStamp >= beginTime) {
                final IntervalStats diskStats = mDatabase.getLatestUsageStats(
                        UsageStatsManager.INTERVAL_DAILY);
                StringBuilder sb = new StringBuilder(256);
                sb.append("Last 24 hours of UsageStats missing! timeRange : ");
                sb.append(beginTime);
                sb.append(", ");
                sb.append(endTime);
                sb.append("\nLast reported Usage Event time : ");
                sb.append(mLastEvent.mTimeStamp);
                if (currentStats == null) {
                    sb.append("\nNo in memory event stats available.");
                } else {
                    sb.append("\nLast in memory event time : ");
                    sb.append(currentStats.endTime);
                    sb.append("\nLast save time: ");
                    sb.append(currentStats.lastTimeSaved);
                }
                if (diskStats == null) {
                    sb.append("\nNo on disk event stats available.");
                } else {
                    sb.append("\nLast on disk event time : ");
                    sb.append(diskStats.endTime);
                }
                Slog.wtf(TAG, sb.toString());
            }

            // Nothing newer available.
            return null;
        }