Repro:
(1) Start trying to connect to a device - for example, by performing a host scan.
(2) Trigger some sort of update to the back-end. For example, re-register a device such that its "last updated timestamp" field changes its value.
Expected: The device connection completes and is cleaned up correctly.
Actual: The changed field results in the two RemoteDevice objects not being equal. Thus, the bookkeeping in BleConnectionManager, BleScanner, and BleAdvertisementDeviceQueue gets out of sync since there could be two entries corresponding to the same RemoteDevice. Connections will continue until the TetherComponent is destroyed.
Comment 1 by khorimoto@chromium.org
, Oct 25 2017