commit | 0fef35d5d2d9d1e95f81953eb9023054452fb53c | [log] [tgz] |
---|---|---|
author | Hugo Benichi <hugobenichi@google.com> | Wed Sep 20 11:20:14 2017 +0900 |
committer | Hugo Benichi <hugobenichi@google.com> | Thu Sep 21 21:15:01 2017 +0900 |
tree | 44709a59aab0f68554bc3719372138e7da71a1b4 | |
parent | 8f50f52eb23cd2a196ddc3d2b3508c53d23b8c95 [diff] |
Implement ConnectivityService TODO and fix many race conditions This patch implements an outstanding TODO in ConnectivityService to add synchronization over the map of network request ids to network agent info objects. This structure is accessed from multiple threads: - Binder thread on public aidl methods, most notably via getDefaultNetwork(). - Internal handler. This leads to many race conditions that can crash the system server and reboot the phone if getDefaultNetwork() is called on a Binder thread to service a public ConnectivityManager api while the default network state is being updated on the internal handler after losing the default network. Bug: 65911184 Test: runtest frameworks-net Merged-In: I86c830ebd559e31d4576a7606705a056afb064ac Merged-In: I2011e23c9f894c079ab66cd7cc5c14af572a956d Merged-In: Ic70901a6aa22a03e97f494e793920ab07a0fd612 Merged-In: I4a7658e1fa6946063ab86a251269413903841ee8 Merged-In: Ia59d45f4e95a536d7982f61ac9c9a1bfc5e8ebb8 (cherry picked from commit cd95278e55bd0e4935f42214d964f8c6aa52b4ea) Change-Id: I2e26bef9eddd342f51c02b991632c7ea04fe7e66