[automerge] Stop tracking ghost jobs. 2p: c554e92792

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17664330

Bug: 228334264
Change-Id: Ia4e01d83b8d35b351a0f8e6f7976ed92022a3843
This commit is contained in:
Kweku Adams
2022-04-08 19:14:30 +00:00
committed by Presubmit Automerger Backend
2 changed files with 11 additions and 1 deletions

View File

@@ -1745,7 +1745,13 @@ public class JobSchedulerService extends com.android.server.SystemService
// Remove from store as well as controllers.
final boolean removed = mJobs.remove(jobStatus, removeFromPersisted);
if (removed && mReadyToRock) {
if (!removed) {
// We never create JobStatus objects for the express purpose of removing them, and this
// method is only ever called for jobs that were saved in the JobStore at some point,
// so if we can't find it, something went seriously wrong.
Slog.wtfStack(TAG, "Job didn't exist in JobStore");
}
if (mReadyToRock) {
for (int i = 0; i < mControllers.size(); i++) {
StateController controller = mControllers.get(i);
controller.maybeStopTrackingJobLocked(jobStatus, incomingJob, false);

View File

@@ -992,6 +992,10 @@ public final class JobServiceContext implements ServiceConnection {
if (mVerb == VERB_FINISHED) {
return;
}
if (DEBUG) {
Slog.d(TAG, "Cleaning up " + mRunningJob.toShortString()
+ " reschedule=" + reschedule + " reason=" + reason);
}
applyStoppedReasonLocked(reason);
completedJob = mRunningJob;
final int internalStopReason = mParams.getInternalStopReasonCode();