Merge "Address comments on dumpsys network_stack version" into qt-dev

This commit is contained in:
Remi NGUYEN VAN
2019-05-22 23:36:12 +00:00
committed by Android (Google) Code Review

View File

@@ -49,6 +49,7 @@ import android.net.shared.PrivateDnsConfig;
import android.net.util.SharedLog; import android.net.util.SharedLog;
import android.os.IBinder; import android.os.IBinder;
import android.os.RemoteException; import android.os.RemoteException;
import android.util.ArraySet;
import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.GuardedBy;
import com.android.internal.util.IndentingPrintWriter; import com.android.internal.util.IndentingPrintWriter;
@@ -62,7 +63,6 @@ import java.util.ArrayDeque;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet; import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
import java.util.concurrent.atomic.AtomicInteger;
/** /**
* Android service used to start the network stack when bound to via an intent. * Android service used to start the network stack when bound to via an intent.
@@ -118,14 +118,12 @@ public class NetworkStackService extends Service {
@GuardedBy("mValidationLogs") @GuardedBy("mValidationLogs")
private final ArrayDeque<SharedLog> mValidationLogs = new ArrayDeque<>(MAX_VALIDATION_LOGS); private final ArrayDeque<SharedLog> mValidationLogs = new ArrayDeque<>(MAX_VALIDATION_LOGS);
private static final int VERSION_UNKNOWN = 0;
private static final String DUMPSYS_ARG_VERSION = "version"; private static final String DUMPSYS_ARG_VERSION = "version";
/** Version of the AIDL interfaces observed on the system */ /** Version of the framework AIDL interfaces observed. Should hold only one value. */
private final AtomicInteger mSystemAidlVersion = new AtomicInteger(VERSION_UNKNOWN); @GuardedBy("mFrameworkAidlVersions")
private final ArraySet<Integer> mFrameworkAidlVersions = new ArraySet<>(1);
/** Whether different versions have been observed on interfaces provided by the system */ private final int mNetdAidlVersion;
private volatile boolean mConflictingSystemAidlVersions = false;
private SharedLog addValidationLogs(Network network, String name) { private SharedLog addValidationLogs(Network network, String name) {
final SharedLog log = new SharedLog(NUM_VALIDATION_LOG_LINES, network + " - " + name); final SharedLog log = new SharedLog(NUM_VALIDATION_LOG_LINES, network + " - " + name);
@@ -146,6 +144,15 @@ public class NetworkStackService extends Service {
mCm = context.getSystemService(ConnectivityManager.class); mCm = context.getSystemService(ConnectivityManager.class);
mIpMemoryStoreService = new IpMemoryStoreService(context); mIpMemoryStoreService = new IpMemoryStoreService(context);
int netdVersion;
try {
netdVersion = mNetd.getInterfaceVersion();
} catch (RemoteException e) {
mLog.e("Error obtaining INetd version", e);
netdVersion = -1;
}
mNetdAidlVersion = netdVersion;
try { try {
mObserverRegistry.register(mNetd); mObserverRegistry.register(mNetd);
} catch (RemoteException e) { } catch (RemoteException e) {
@@ -154,9 +161,8 @@ public class NetworkStackService extends Service {
} }
private void updateSystemAidlVersion(final int version) { private void updateSystemAidlVersion(final int version) {
final int previousVersion = mSystemAidlVersion.getAndSet(version); synchronized (mFrameworkAidlVersions) {
if (previousVersion != VERSION_UNKNOWN && previousVersion != version) { mFrameworkAidlVersions.add(version);
mConflictingSystemAidlVersions = true;
} }
} }
@@ -230,12 +236,16 @@ public class NetworkStackService extends Service {
protected void dump(@NonNull FileDescriptor fd, @NonNull PrintWriter fout, protected void dump(@NonNull FileDescriptor fd, @NonNull PrintWriter fout,
@Nullable String[] args) { @Nullable String[] args) {
checkDumpPermission(); checkDumpPermission();
final IndentingPrintWriter pw = new IndentingPrintWriter(fout, " ");
pw.println("NetworkStack version:");
dumpVersion(pw);
pw.println();
if (args != null && args.length >= 1 && DUMPSYS_ARG_VERSION.equals(args[0])) { if (args != null && args.length >= 1 && DUMPSYS_ARG_VERSION.equals(args[0])) {
dumpVersion(fout);
return; return;
} }
final IndentingPrintWriter pw = new IndentingPrintWriter(fout, " ");
pw.println("NetworkStack logs:"); pw.println("NetworkStack logs:");
mLog.dump(fd, pw, args); mLog.dump(fd, pw, args);
@@ -283,8 +293,10 @@ public class NetworkStackService extends Service {
*/ */
private void dumpVersion(@NonNull PrintWriter fout) { private void dumpVersion(@NonNull PrintWriter fout) {
fout.println("NetworkStackConnector: " + this.VERSION); fout.println("NetworkStackConnector: " + this.VERSION);
fout.println("SystemServer: " + mSystemAidlVersion); synchronized (mFrameworkAidlVersions) {
fout.println("SystemServerConflicts: " + mConflictingSystemAidlVersions); fout.println("SystemServer: " + mFrameworkAidlVersions);
}
fout.println("Netd: " + mNetdAidlVersion);
} }
@Override @Override