Merge "Throttle error messages about mismatched bucket"

This commit is contained in:
Amith Yamasani
2021-01-21 06:29:59 +00:00
committed by Android (Google) Code Review
2 changed files with 18 additions and 1 deletions

View File

@@ -203,7 +203,7 @@ public final class BackgroundJobsController extends StateController {
isActive = (activeState == KNOWN_ACTIVE);
}
if (isActive && jobStatus.getStandbyBucket() == NEVER_INDEX) {
Slog.wtf(TAG, "App " + packageName + " became active but still in NEVER bucket");
jobStatus.maybeLogBucketMismatch();
}
boolean didChange = jobStatus.setBackgroundNotRestrictedConstraintSatisfied(canRun);
didChange |= jobStatus.setUidActive(isActive);

View File

@@ -205,6 +205,11 @@ public final class JobStatus {
*/
private int standbyBucket;
/**
* Whether we've logged an error due to standby bucket mismatch with active uid state.
*/
private boolean mLoggedBucketMismatch;
/**
* Debugging: timestamp if we ever defer this job based on standby bucketing, this
* is when we did so.
@@ -805,6 +810,18 @@ public final class JobStatus {
}
standbyBucket = newBucket;
mLoggedBucketMismatch = false;
}
/**
* Log a bucket mismatch if this is the first time for this job.
*/
public void maybeLogBucketMismatch() {
if (!mLoggedBucketMismatch) {
Slog.wtf(TAG,
"App " + getSourcePackageName() + " became active but still in NEVER bucket");
mLoggedBucketMismatch = true;
}
}
// Called only by the standby monitoring code