SpockAdb icon indicating copy to clipboard operation
SpockAdb copied to clipboard

AdbControllerImp leaks via ADB device listener

Open npaige opened this issue 2 years ago • 0 comments

We've seen the following leak in diagnostic reports from Android Studio users:

 1.19G        1 ROOT: Static field: com.android.ddmlib.AndroidDebugBridge.sDeviceListeners
 1.19G        1 (root): java.util.concurrent.CopyOnWriteArraySet
 1.19G        1 al: java.util.concurrent.CopyOnWriteArrayList
 1.19G        1 array: java.lang.Object[]
 1.19G        6 []: spock.adb.AdbControllerImp
 472M        5 project: com.intellij.openapi.project.impl.ProjectImpl (disposed)

It looks like AdbControllerImp adds itself as a device change listener and never unregisters itself (except for refresh(), where it immediately re-registers itself). This references stale projects and other large data structures, keeping them in memory indefinitely.

npaige avatar Feb 26 '24 18:02 npaige