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

Commit c35a1e8e authored by Martijn Coenen's avatar Martijn Coenen Committed by android-build-merger
Browse files

Merge "Dump proxy debug info when exceeding proxy limit." into pi-dev am: 879d09f9

am: a634f425

Change-Id: I2fd8ddc6166f00d03a5cefc2d39e477f59a490f0
parents 56034a4f a634f425
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.
     *
@@ -942,8 +951,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), "
@@ -1027,6 +1035,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
@@ -15174,6 +15174,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 {