From fb7cdc3f59adb32cae5c550dae92414473774df9 Mon Sep 17 00:00:00 2001 From: Jim Kaye Date: Fri, 28 Jun 2019 10:38:36 -0700 Subject: Remove spurious error logging from BackgroundDexOptService The old logic created a log entry indicating an error when the actual result was success. Make the log entry accurate. Also, ensure that an out-of-space failure is actually reported. Fixes: 136201068 Test: Manually checked 'adb logcat' Change-Id: I52110b84496d9fc90bf08d16cb434ea0c979fa04 --- .../com/android/server/pm/BackgroundDexOptService.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/pm/BackgroundDexOptService.java b/services/core/java/com/android/server/pm/BackgroundDexOptService.java index ad9ac1232437..2b33aced7151 100644 --- a/services/core/java/com/android/server/pm/BackgroundDexOptService.java +++ b/services/core/java/com/android/server/pm/BackgroundDexOptService.java @@ -254,9 +254,16 @@ public class BackgroundDexOptService extends JobService { @Override public void run() { int result = idleOptimization(pm, pkgs, BackgroundDexOptService.this); - if (result != OPTIMIZE_ABORT_BY_JOB_SCHEDULER) { + if (result == OPTIMIZE_PROCESSED) { + Log.i(TAG, "Idle optimizations completed."); + } else if (result == OPTIMIZE_ABORT_NO_SPACE_LEFT) { Log.w(TAG, "Idle optimizations aborted because of space constraints."); - // If we didn't abort we ran to completion (or stopped because of space). + } else if (result == OPTIMIZE_ABORT_BY_JOB_SCHEDULER) { + Log.w(TAG, "Idle optimizations aborted by job scheduler."); + } else { + Log.w(TAG, "Idle optimizations ended with unexpected code: " + result); + } + if (result != OPTIMIZE_ABORT_BY_JOB_SCHEDULER) { // Abandon our timeslice and do not reschedule. jobFinished(jobParams, /* reschedule */ false); } @@ -339,6 +346,7 @@ public class BackgroundDexOptService extends JobService { long lowStorageThreshold, boolean isForPrimaryDex) { ArraySet updatedPackages = new ArraySet<>(); Set unusedPackages = pm.getUnusedPackages(mDowngradeUnusedAppsThresholdInMillis); + boolean hadSomeLowSpaceFailure = false; Log.d(TAG, "Unsused Packages " + String.join(",", unusedPackages)); // Only downgrade apps when space is low on device. // Threshold is selected above the lowStorageThreshold so that we can pro-actively clean @@ -359,6 +367,7 @@ public class BackgroundDexOptService extends JobService { } else { if (abort_code == OPTIMIZE_ABORT_NO_SPACE_LEFT) { // can't dexopt because of low space. + hadSomeLowSpaceFailure = true; continue; } dex_opt_performed = optimizePackage(pm, pkg, isForPrimaryDex); @@ -369,7 +378,7 @@ public class BackgroundDexOptService extends JobService { } notifyPinService(updatedPackages); - return OPTIMIZE_PROCESSED; + return hadSomeLowSpaceFailure ? OPTIMIZE_ABORT_NO_SPACE_LEFT : OPTIMIZE_PROCESSED; } -- cgit v1.2.3-59-g8ed1b