Remove ConnectivityManager and its usages from NetworkStatsService.
NSS needed it for getting VpnInfo[], NetworkState[] and activeLinkProperties which it used to query via ConnectivityManager. For VpnInfo[], this was racy as NSS may ignore intermediate changes to a VPN's underlying networks. See http://b/123961098 for more context. It may also lead to deadlocks b/w ConnectivityService and NetworkStatsService. See http://b/126245192 for more info. This change will ensure that NSS is never contending on any of ConnectivityService locks. Bug: 123961098 Bug: 126245192 Bug: 120145746 Test: atest FrameworksNetTests Change-Id: Id1da446b54d95ee68ed14079107b1a10318bcf8b Merged-In: I57e117bb4e9efe491b19d6b5a479f2d58d1c58e6
This commit is contained in:
@@ -1235,7 +1235,6 @@ public final class SystemServer {
|
||||
ServiceManager.addService(Context.CONNECTIVITY_SERVICE, connectivity,
|
||||
/* allowIsolated= */ false,
|
||||
DUMP_FLAG_PRIORITY_HIGH | DUMP_FLAG_PRIORITY_NORMAL);
|
||||
networkStats.bindConnectivityManager(connectivity);
|
||||
networkPolicy.bindConnectivityManager(connectivity);
|
||||
} catch (Throwable e) {
|
||||
reportWtf("starting Connectivity Service", e);
|
||||
|
||||
Reference in New Issue
Block a user