introspectsoft / cobilling

Kotlin coroutine wrappers for the Google Play Billing API (Google Play Billing 2.2.1)
Apache License 2.0
3 stars 0 forks source link

Memory leak when there is no network connection #5

Open introspectdev opened 4 years ago

introspectdev commented 4 years ago

┬─── │ GC Root: Global variable in native code │ ├─ android.app.LoadedApk$ServiceDispatcher$DeathMonitor instance │ Leaking: UNKNOWN │ ↓ LoadedApk$ServiceDispatcher$DeathMonitor.this$0 │ ~~ ├─ android.app.LoadedApk$ServiceDispatcher instance │ Leaking: UNKNOWN │ ↓ LoadedApk$ServiceDispatcher.mConnection │ ~~~ ├─ com.android.billingclient.api.BillingClientImpl$zza instance │ Leaking: UNKNOWN │ ↓ BillingClientImpl$zza.zzd │ ~~~ ├─ ml.introspectsoft.cobilling.CoBilling$connect$2$invokeSuspend$$inlined$suspendCoroutine$lambda$1 instance │ Leaking: UNKNOWN │ Anonymous class implementing com.android.billingclient.api.BillingClientStateListener │ ↓ CoBilling$connect$2$invokeSuspend$$inlined$suspendCoroutine$lambda$1.this$0 │ ~~ ├─ ml.introspectsoft.cobilling.CoBilling$connect$2 instance │ Leaking: UNKNOWN │ Anonymous subclass of kotlin.coroutines.jvm.internal.SuspendLambda │ ↓ CoBilling$connect$2.this$0 │ ~~ ├─ ml.introspectsoft.cobilling.CoBilling instance │ Leaking: UNKNOWN │ ↓ CoBilling.activity │ ~~~~ ╰→ com.unpluggedsoft.chargeclock.ui.activities.SettingsActivity instance ​ Leaking: YES (ObjectWatcher was watching this because com.unpluggedsoft.chargeclock.ui.activities.SettingsActivity received Activity#onDestroy() callback and Activity#mDestroyed is true) ​ key = 1b541847-c8f1-4495-b275-39f6c929751d ​ watchDurationMillis = 5270 ​ retainedDurationMillis = 248

METADATA

Build.VERSION.SDK_INT: 28 Build.MANUFACTURER: samsung LeakCanary version: 2.3 App process name: com.unpluggedsoft.chargeclock Analysis duration: 16826 ms

introspectdev commented 4 years ago

┬─── │ GC Root: Input or output parameters in native code │ ├─ android.os.MessageQueue instance │ Leaking: NO (MessageQueue#mQuitting is false) │ ↓ MessageQueue.mMessages │ ~~~~~ ├─ android.os.Message instance │ Leaking: UNKNOWN │ ↓ Message.next │ ~~~~ ├─ android.os.Message instance │ Leaking: UNKNOWN │ ↓ Message.callback │ ~~~~ ├─ com.android.billingclient.api.zzz instance │ Leaking: UNKNOWN │ ↓ zzz.zzb │ ~~~ ├─ com.android.billingclient.api.zzaj instance │ Leaking: UNKNOWN │ ↓ zzaj.zza │ ~~~ ├─ com.android.billingclient.api.BillingClientImpl$zza instance │ Leaking: UNKNOWN │ ↓ BillingClientImpl$zza.zza │ ~~~ ├─ com.android.billingclient.api.BillingClientImpl instance │ Leaking: UNKNOWN │ ↓ BillingClientImpl.zzd │ ~~~ ├─ com.android.billingclient.api.zzd instance │ Leaking: UNKNOWN │ ↓ zzd.zzb │ ~~~ ├─ com.android.billingclient.api.zze instance │ Leaking: UNKNOWN │ ↓ zze.zza │ ~~~ ├─ ml.introspectsoft.cobilling.CoBilling$connect$2$client$1 instance │ Leaking: UNKNOWN │ Anonymous class implementing com.android.billingclient.api.PurchasesUpdatedListener │ ↓ CoBilling$connect$2$client$1.this$0 │ ~~ ├─ ml.introspectsoft.cobilling.CoBilling$connect$2 instance │ Leaking: UNKNOWN │ Anonymous subclass of kotlin.coroutines.jvm.internal.SuspendLambda │ ↓ CoBilling$connect$2.this$0 │ ~~ ├─ ml.introspectsoft.cobilling.CoBilling instance │ Leaking: UNKNOWN │ ↓ CoBilling.activity │ ~~~~ ╰→ com.unpluggedsoft.chargeclock.ui.activities.SettingsActivity instance ​ Leaking: YES (ObjectWatcher was watching this because com.unpluggedsoft.chargeclock.ui.activities.SettingsActivity received Activity#onDestroy() callback and Activity#mDestroyed is true) ​ key = bff0a201-d4b9-4956-97e7-77843dcf4502 ​ watchDurationMillis = 5178 ​ retainedDurationMillis = 177

METADATA

Build.VERSION.SDK_INT: 28 Build.MANUFACTURER: samsung LeakCanary version: 2.3 App process name: com.unpluggedsoft.chargeclock Analysis duration: 15298 ms