Add some debugs to diagnose test failure.

Bug: 218308105
Test: atest com.android.cts.net.HostsideRestrictBackgroundNetworkTests
Change-Id: I29d117a20905c065e50a21591a763fdadd8d2a7b
This commit is contained in:
Sudheer Shanka
2022-02-23 04:25:55 +00:00
parent 9ab79ba40f
commit 362b52cf13
2 changed files with 60 additions and 2 deletions

View File

@@ -77,6 +77,8 @@ public class NetworkPolicyLogger {
private static final int EVENT_FIREWALL_CHAIN_ENABLED = 12;
private static final int EVENT_UPDATE_METERED_RESTRICTED_PKGS = 13;
private static final int EVENT_APP_IDLE_WL_CHANGED = 14;
private static final int EVENT_METERED_ALLOWLIST_CHANGED = 15;
private static final int EVENT_METERED_DENYLIST_CHANGED = 16;
private final LogBuffer mNetworkBlockedBuffer = new LogBuffer(MAX_NETWORK_BLOCKED_LOG_SIZE);
private final LogBuffer mUidStateChangeBuffer = new LogBuffer(MAX_LOG_SIZE);
@@ -89,7 +91,7 @@ public class NetworkPolicyLogger {
void networkBlocked(int uid, @Nullable UidBlockedState uidBlockedState) {
synchronized (mLock) {
if (LOGD || uid == mDebugUid) {
Slog.d(TAG, "Blocked state of uid: " + uidBlockedState.toString());
Slog.d(TAG, "Blocked state of " + uid + ": " + uidBlockedState.toString());
}
if (uidBlockedState == null) {
mNetworkBlockedBuffer.networkBlocked(uid, BLOCKED_REASON_NONE, ALLOWED_REASON_NONE,
@@ -245,6 +247,24 @@ public class NetworkPolicyLogger {
}
}
void meteredAllowlistChanged(int uid, boolean added) {
synchronized (mLock) {
if (LOGD || mDebugUid == uid) {
Slog.d(TAG, getMeteredAllowlistChangedLog(uid, added));
}
mEventsBuffer.meteredAllowlistChanged(uid, added);
}
}
void meteredDenylistChanged(int uid, boolean added) {
synchronized (mLock) {
if (LOGD || mDebugUid == uid) {
Slog.d(TAG, getMeteredDenylistChangedLog(uid, added));
}
mEventsBuffer.meteredDenylistChanged(uid, added);
}
}
void setDebugUid(int uid) {
mDebugUid = uid;
}
@@ -320,6 +340,14 @@ public class NetworkPolicyLogger {
return "Firewall chain " + getFirewallChainName(chain) + " state: " + enabled;
}
private static String getMeteredAllowlistChangedLog(int uid, boolean added) {
return "metered-allowlist for " + uid + " changed to " + added;
}
private static String getMeteredDenylistChangedLog(int uid, boolean added) {
return "metered-denylist for " + uid + " changed to " + added;
}
private static String getFirewallChainName(int chain) {
switch (chain) {
case FIREWALL_CHAIN_DOZABLE:
@@ -520,6 +548,28 @@ public class NetworkPolicyLogger {
data.timeStamp = System.currentTimeMillis();
}
public void meteredAllowlistChanged(int uid, boolean added) {
final Data data = getNextSlot();
if (data == null) return;
data.reset();
data.type = EVENT_METERED_ALLOWLIST_CHANGED;
data.ifield1 = uid;
data.bfield1 = added;
data.timeStamp = System.currentTimeMillis();
}
public void meteredDenylistChanged(int uid, boolean added) {
final Data data = getNextSlot();
if (data == null) return;
data.reset();
data.type = EVENT_METERED_DENYLIST_CHANGED;
data.ifield1 = uid;
data.bfield1 = added;
data.timeStamp = System.currentTimeMillis();
}
public void reverseDump(IndentingPrintWriter pw) {
final Data[] allData = toArray();
for (int i = allData.length - 1; i >= 0; --i) {
@@ -567,6 +617,10 @@ public class NetworkPolicyLogger {
return getUidFirewallRuleChangedLog(data.ifield1, data.ifield2, data.ifield3);
case EVENT_FIREWALL_CHAIN_ENABLED:
return getFirewallChainEnabledLog(data.ifield1, data.bfield1);
case EVENT_METERED_ALLOWLIST_CHANGED:
return getMeteredAllowlistChangedLog(data.ifield1, data.bfield1);
case EVENT_METERED_DENYLIST_CHANGED:
return getMeteredDenylistChangedLog(data.ifield1, data.bfield1);
default:
return String.valueOf(data.type);
}

View File

@@ -4864,7 +4864,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
+ ", isAllowed=" + isAllowed
+ ", isRestrictedByAdmin=" + isRestrictedByAdmin
+ ", oldBlockedState=" + previousUidBlockedState.toString()
+ ", newBlockedState="
+ ", newBlockedState=" + uidBlockedState.toString()
+ ", oldBlockedMeteredReasons=" + NetworkPolicyManager.blockedReasonsToString(
uidBlockedState.blockedReasons & BLOCKED_METERED_REASON_MASK)
+ ", oldBlockedMeteredEffectiveReasons="
@@ -5420,6 +5420,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
if (LOGV) Slog.v(TAG, "setMeteredNetworkDenylist " + uid + ": " + enable);
try {
mNetworkManager.setUidOnMeteredNetworkDenylist(uid, enable);
mLogger.meteredAllowlistChanged(uid, enable);
} catch (IllegalStateException e) {
Log.wtf(TAG, "problem setting denylist (" + enable + ") rules for " + uid, e);
} catch (RemoteException e) {
@@ -5431,6 +5432,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
if (LOGV) Slog.v(TAG, "setMeteredNetworkAllowlist " + uid + ": " + enable);
try {
mNetworkManager.setUidOnMeteredNetworkAllowlist(uid, enable);
mLogger.meteredDenylistChanged(uid, enable);
} catch (IllegalStateException e) {
Log.wtf(TAG, "problem setting allowlist (" + enable + ") rules for " + uid, e);
} catch (RemoteException e) {
@@ -5562,7 +5564,9 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
.setFirewallUidRule(FIREWALL_CHAIN_LOW_POWER_STANDBY, uid,
FIREWALL_RULE_DEFAULT);
mNetworkManager.setUidOnMeteredNetworkAllowlist(uid, false);
mLogger.meteredAllowlistChanged(uid, false);
mNetworkManager.setUidOnMeteredNetworkDenylist(uid, false);
mLogger.meteredDenylistChanged(uid, false);
} catch (IllegalStateException e) {
Log.wtf(TAG, "problem resetting firewall uid rules for " + uid, e);
} catch (RemoteException e) {