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
This commit is contained in:
Josep del Rio
2023-02-28 10:25:39 +00:00
committed by Josep del Río
parent b153d19b13
commit b56a64a37e

View File

@@ -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");
}