Memory leak
This is nearly 30 days old, so it may have already been fixed:
====================================
HEAP ANALYSIS RESULT
====================================
1 APPLICATION LEAKS
References underlined with "~~~" are likely causes.
Learn more at https://squ.re/leaks.
5159 bytes retained by leaking objects
Signature: [redacted]
┬───
│ GC Root: Thread object
│
├─ android.net.ConnectivityThread instance
│ Leaking: NO (PathClassLoader↓ is not leaking)
│ Thread name: 'ConnectivityThread'
│ ↓ Thread.contextClassLoader
├─ dalvik.system.PathClassLoader instance
│ Leaking: NO (OnionMasq↓ is not leaking and A ClassLoader is never leaking)
│ ↓ ClassLoader.runtimeInternalObjects
├─ java.lang.Object[] array
│ Leaking: NO (OnionMasq↓ is not leaking)
│ ↓ Object[303]
├─ org.torproject.onionmasq.OnionMasq class
│ Leaking: NO (a class is never leaking)
│ ↓ static OnionMasq.instance
│ ~~~~~~~~
├─ org.torproject.onionmasq.OnionMasq instance
│ Leaking: UNKNOWN
│ Retaining 12,3 kB in 243 objects
│ appContext instance of org.torproject.vpn.TorApplication
│ ↓ OnionMasq.eventObservable
│ ~~~~~~~~~~~~~~~
├─ org.torproject.onionmasq.OnionmasqEventObservable instance
│ Leaking: UNKNOWN
│ Retaining 6,4 kB in 134 objects
│ ↓ OnionmasqEventObservable.event
│ ~~~~~
├─ androidx.lifecycle.MutableLiveData instance
│ Leaking: UNKNOWN
│ Retaining 6,3 kB in 128 objects
│ ↓ LiveData.mObservers
│ ~~~~~~~~~~
├─ androidx.arch.core.internal.SafeIterableMap instance
│ Leaking: UNKNOWN
│ Retaining 6,0 kB in 121 objects
│ ↓ SafeIterableMap[key()]
│ ~~~~~~~
├─ org.torproject.vpn.vpn.TorVpnService$$ExternalSyntheticLambda0 instance
│ Leaking: UNKNOWN
│ Retaining 5,2 kB in 101 objects
│ f$0 instance of org.torproject.vpn.vpn.TorVpnService
│ ↓ TorVpnService$$ExternalSyntheticLambda0.f$0
│ ~~~
╰→ org.torproject.vpn.vpn.TorVpnService instance
Leaking: YES (ObjectWatcher was watching this because org.torproject.vpn.
vpn.TorVpnService received Service#onDestroy() callback and Service not
held by ActivityThread)
Retaining 5,2 kB in 100 objects
key = 6d405c96-a1d4-49e0-83f1-3316c996c626
watchDurationMillis = 96980
retainedDurationMillis = 36960
mApplication instance of org.torproject.vpn.TorApplication
mBase instance of android.app.ContextImpl
====================================
0 LIBRARY LEAKS
A Library Leak is a leak caused by a known bug in 3rd party code that you do
not have control over.
See https://square.github.
io/leakcanary/fundamentals-how-leakcanary-works/#4-categorizing-leaks
====================================
0 UNREACHABLE OBJECTS
An unreachable object is still in memory but LeakCanary could not find a strong
reference path
from GC roots.
====================================
METADATA
Please include this in bug reports and Stack Overflow questions.
Build.VERSION.SDK_INT: 36
Build.MANUFACTURER: Google
LeakCanary version: 3.0-alpha-1
App process name: org.torproject.vpn
Class count: 32037
Instance count: 229080
Primitive array count: 171578
Object array count: 29611
Thread count: 34
Heap total bytes: 30915064
Bitmap count: 0
Bitmap total bytes: 0
Large bitmap count: 0
Large bitmap total bytes: 0
Count of retained yet cleared: 19 KeyedWeakReference instances
Stats: LruCache[maxSize=3000,hits=123282,misses=138119,hitRate=47%]
RandomAccess[bytes=7022480,reads=138119,travel=67694246198,range=37472716,size=4
7610601]
Analysis duration: [redacted] ms
Heap dump file path: [redacted]
Heap dump timestamp: [redacted]
Heap dump duration: Unknown
====================================