Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fc854c65 authored by Kevin Jeon's avatar Kevin Jeon Committed by Cherrypicker Worker
Browse files

Disable freezer during AM provider/service dump

This change disables the freezer during ActiveServices.dumpService() and
ProviderMap.dumpProvider() in order to avoid 'dumpsys activity
<service|provider>' from timing out during bug reports.

Test: Using health/bugreport/capturebugreport, verify that the 'dumpsys
      activity' sections no longer time out at 60 seconds.
Bug: 276451949
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:353c04e22e6817f3cef2c7540534d899dec50858)
Merged-In: I22c5a83e545cfaaab9bfb6f9cae99146c3c51d8c
Change-Id: I22c5a83e545cfaaab9bfb6f9cae99146c3c51d8c
parent eaf91796
Loading
Loading
Loading
Loading
+34 −29
Original line number Diff line number Diff line
@@ -7222,6 +7222,8 @@ public final class ActiveServices {
     */
    protected boolean dumpService(FileDescriptor fd, PrintWriter pw, String name, int[] users,
            String[] args, int opti, boolean dumpAll) {
        try {
            mAm.mOomAdjuster.mCachedAppOptimizer.enableFreezer(false);
            final ArrayList<ServiceRecord> services = new ArrayList<>();

            final Predicate<ServiceRecord> filter = DumpUtils.filterRecord(name);
@@ -7263,6 +7265,9 @@ public final class ActiveServices {
                dumpService("", fd, pw, services.get(i), args, dumpAll);
            }
            return true;
        } finally {
            mAm.mOomAdjuster.mCachedAppOptimizer.enableFreezer(true);
        }
    }

    /**
+16 −11
Original line number Diff line number Diff line
@@ -351,6 +351,8 @@ public final class ProviderMap {

    protected boolean dumpProvider(FileDescriptor fd, PrintWriter pw, String name, String[] args,
            int opti, boolean dumpAll) {
        try {
            mAm.mOomAdjuster.mCachedAppOptimizer.enableFreezer(false);
            ArrayList<ContentProviderRecord> providers = getProvidersForName(name);

            if (providers.size() <= 0) {
@@ -366,6 +368,9 @@ public final class ProviderMap {
                dumpProvider("", fd, pw, providers.get(i), args, dumpAll);
            }
            return true;
        } finally {
            mAm.mOomAdjuster.mCachedAppOptimizer.enableFreezer(true);
        }
    }

    /**