diff options
author | 2024-12-05 16:12:29 +0000 | |
---|---|---|
committer | 2024-12-10 23:40:33 +0000 | |
commit | 0fc16f3e7263f85bf570058c98cb57aa645676e7 (patch) | |
tree | 1d4b02f7cfa7ef06d58ef8cf454ab951c0ed2fb8 /apex | |
parent | 023c47db32ee334041a66cc107154d5f7a863637 (diff) |
Count proxy jobs toward scheduling limit.
Limit schedule calls for persisted proxy jobs.
Bug: 377912323
Bug: 299930087
Test: atest FrameworksMockingServicesTests:com.android.server.job.JobSchedulerServiceTest
Flag: com.android.server.job.enforce_schedule_limit_to_proxy_jobs
Change-Id: I4ebcdd6ee299347d7d5cf6e228ba441b73db7481
Diffstat (limited to 'apex')
-rw-r--r-- | apex/jobscheduler/service/aconfig/job.aconfig | 10 | ||||
-rw-r--r-- | apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java | 5 |
2 files changed, 13 insertions, 2 deletions
diff --git a/apex/jobscheduler/service/aconfig/job.aconfig b/apex/jobscheduler/service/aconfig/job.aconfig index fe95a59622f4..86ed06bf4e3d 100644 --- a/apex/jobscheduler/service/aconfig/job.aconfig +++ b/apex/jobscheduler/service/aconfig/job.aconfig @@ -95,4 +95,14 @@ flag { namespace: "backstage_power" description: "Apply the quota policy to jobs started when the app was in TOP state" bug: "374323858" +} + +flag { + name: "enforce_schedule_limit_to_proxy_jobs" + namespace: "backstage_power" + description: "Limit the schedule calls towards the persisted proxy jobs" + bug: "377912323" + metadata { + purpose: PURPOSE_BUGFIX + } }
\ No newline at end of file diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java index 8fad79a845b4..0b884057ea19 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java +++ b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java @@ -1718,8 +1718,9 @@ public class JobSchedulerService extends com.android.server.SystemService int userId, @Nullable String namespace, String tag) { // Rate limit excessive schedule() calls. final String servicePkg = job.getService().getPackageName(); - if (job.isPersisted() && (packageName == null || packageName.equals(servicePkg))) { - // Only limit schedule calls for persisted jobs scheduled by the app itself. + if (job.isPersisted() && (Flags.enforceScheduleLimitToProxyJobs() + || (packageName == null || packageName.equals(servicePkg)))) { + // limit excessive schedule calls for persisted jobs. final String pkg = packageName == null ? servicePkg : packageName; if (!mQuotaTracker.isWithinQuota(userId, pkg, QUOTA_TRACKER_SCHEDULE_PERSISTED_TAG)) { if (mQuotaTracker.isWithinQuota(userId, pkg, QUOTA_TRACKER_SCHEDULE_LOGGED)) { |