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

Commit 879d09f9 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Dump proxy debug info when exceeding proxy limit." into pi-dev

parents 9d19487b eebac6d6
Loading
Loading
Loading
Loading
+18 −2
Original line number Diff line number Diff line
@@ -137,6 +137,15 @@ public class Binder implements IBinder {
        sTracingEnabled = false;
    }

    /**
     * Dump proxy debug information.
     *
     * @hide
     */
    public static void dumpProxyDebugInfo() {
        BinderProxy.dumpProxyDebugInfo();
    }

    /**
     * Check if binder transaction tracing is enabled.
     *
@@ -941,8 +950,7 @@ final class BinderProxy implements IBinder {
                    // about to crash.
                    final int totalUnclearedSize = unclearedSize();
                    if (totalUnclearedSize >= CRASH_AT_SIZE) {
                        dumpProxyInterfaceCounts();
                        dumpPerUidProxyCounts();
                        dumpProxyDebugInfo();
                        Runtime.getRuntime().gc();
                        throw new AssertionError("Binder ProxyMap has too many entries: "
                                + totalSize + " (total), " + totalUnclearedSize + " (uncleared), "
@@ -1026,6 +1034,14 @@ final class BinderProxy implements IBinder {

    private static ProxyMap sProxyMap = new ProxyMap();

    /**
      * @hide
      */
    public static void dumpProxyDebugInfo() {
        sProxyMap.dumpProxyInterfaceCounts();
        sProxyMap.dumpPerUidProxyCounts();
    }

    /**
     * Return a BinderProxy for IBinder.
     * This method is thread-hostile!  The (native) caller serializes getInstance() calls using
+1 −0
Original line number Diff line number Diff line
@@ -15305,6 +15305,7 @@ public class ActivityManagerService extends IActivityManager.Stub
                        public void onLimitReached(int uid) {
                            Slog.wtf(TAG, "Uid " + uid + " sent too many Binders to uid "
                                    + Process.myUid());
                            Binder.dumpProxyDebugInfo();
                            if (uid == Process.SYSTEM_UID) {
                                Slog.i(TAG, "Skipping kill (uid is SYSTEM)");
                            } else {