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

Commit 1a0d812c authored by Siim Sammul's avatar Siim Sammul Committed by Gerrit Code Review
Browse files

Merge "Add the ability to reset dropbox rate limiter with a shell command."

parents 0d7ec633 dd6df293
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -17793,6 +17793,13 @@ public class ActivityManagerService extends IActivityManager.Stub
        mCoreSettingsObserver.onChange(true);
    }
    /**
     * Reset the dropbox rate limiter
     */
    void resetDropboxRateLimiter() {
        mDropboxRateLimiter.reset();
    }
    /**
     * Kill processes for the user with id userId and that depend on the package named packageName
     */
+7 −0
Original line number Diff line number Diff line
@@ -350,6 +350,8 @@ final class ActivityManagerShellCommand extends ShellCommand {
                    return runSetBgAbusiveUids(pw);
                case "list-bg-exemptions-config":
                    return runListBgExemptionsConfig(pw);
                case "reset-dropbox-rate-limiter":
                    return runResetDropboxRateLimiter();
                default:
                    return handleDefaultCommands(cmd);
            }
@@ -3374,6 +3376,11 @@ final class ActivityManagerShellCommand extends ShellCommand {
        return 0;
    }

    int runResetDropboxRateLimiter() throws RemoteException {
        mInternal.resetDropboxRateLimiter();
        return 0;
    }

    private Resources getResources(PrintWriter pw) throws RemoteException {
        // system resources does not contain all the device configuration, construct it manually.
        Configuration config = mInterface.getConfiguration();
+11 −0
Original line number Diff line number Diff line
@@ -19,11 +19,13 @@ package com.android.server.am;
import android.os.SystemClock;
import android.text.format.DateUtils;
import android.util.ArrayMap;
import android.util.Slog;

import com.android.internal.annotations.GuardedBy;

/** Rate limiter for adding errors into dropbox. */
public class DropboxRateLimiter {
    private static final String TAG = "DropboxRateLimiter";
    // After RATE_LIMIT_ALLOWED_ENTRIES have been collected (for a single breakdown of
    // process/eventType) further entries will be rejected until RATE_LIMIT_BUFFER_DURATION has
    // elapsed, after which the current count for this breakdown will be reset.
@@ -105,6 +107,15 @@ public class DropboxRateLimiter {
        mLastMapCleanUp = now;
    }

    /** Resets the rate limiter memory. */
    void reset() {
        synchronized (mErrorClusterRecords) {
            mErrorClusterRecords.clear();
        }
        mLastMapCleanUp = 0L;
        Slog.i(TAG, "Rate limiter reset.");
    }

    String errorKey(String eventType, String processName) {
        return eventType + processName;
    }