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

Commit b56a64a3 authored by Josep del Rio's avatar Josep del Rio Committed by Josep del Río
Browse files

Improve event time crash logging

We got a report that system server is crashing due to receiving
some events with a time set in the future. From the error message
it is not possible to determine if the event time is a bit further
or if it's just uninitialized garbage (the second is a lot more
plausible). This CL will add some extra logging when this occurs
so we have a better idea of what is happening.

Bug: 269510424
Test: builds, passes presubmit
Change-Id: I47a924f182444dcdefea5b2cda76f7d2d8de1cf0
parent b153d19b
Loading
Loading
Loading
Loading
+12 −3
Original line number Diff line number Diff line
@@ -5693,6 +5693,7 @@ public final class PowerManagerService extends SystemService
            }

            if (eventTime > now) {
                Slog.e(TAG, "Event time " + eventTime + " cannot be newer than " + now);
                throw new IllegalArgumentException("event time must not be in the future");
            }

@@ -5708,7 +5709,9 @@ public final class PowerManagerService extends SystemService
        @Override // Binder call
        public void wakeUp(long eventTime, @WakeReason int reason, String details,
                String opPackageName) {
            if (eventTime > mClock.uptimeMillis()) {
            final long now = mClock.uptimeMillis();
            if (eventTime > now) {
                Slog.e(TAG, "Event time " + eventTime + " cannot be newer than " + now);
                throw new IllegalArgumentException("event time must not be in the future");
            }

@@ -5760,7 +5763,9 @@ public final class PowerManagerService extends SystemService

        @Override // Binder call
        public void nap(long eventTime) {
            if (eventTime > mClock.uptimeMillis()) {
            final long now = mClock.uptimeMillis();
            if (eventTime > now) {
                Slog.e(TAG, "Event time " + eventTime + " cannot be newer than " + now);
                throw new IllegalArgumentException("event time must not be in the future");
            }

@@ -6525,7 +6530,9 @@ public final class PowerManagerService extends SystemService

        @Override // Binder call
        public void boostScreenBrightness(long eventTime) {
            final long now = mClock.uptimeMillis();
            if (eventTime > mClock.uptimeMillis()) {
                Slog.e(TAG, "Event time " + eventTime + " cannot be newer than " + now);
                throw new IllegalArgumentException("event time must not be in the future");
            }

@@ -6684,7 +6691,9 @@ public final class PowerManagerService extends SystemService

    @RequiresPermission(android.Manifest.permission.DEVICE_POWER)
    private void goToSleepInternal(IntArray groupIds, long eventTime, int reason, int flags) {
        if (eventTime > mClock.uptimeMillis()) {
        final long now = mClock.uptimeMillis();
        if (eventTime > now) {
            Slog.e(TAG, "Event time " + eventTime + " cannot be newer than " + now);
            throw new IllegalArgumentException("event time must not be in the future");
        }