Skip to content

Утечка памяти MindboxDI.appModule #702

@Olesya-Egorova

Description

@Olesya-Egorova

Версия SDK: 2.11.2

Предусловия: на устройстве включена функция "Вытеснение фоновых активити"

Шаги:

  1. Зарегистрировать InAppCallback в onCreate активити A
  2. Открыть активити Б

Ожидаемый результат: активити Б открылась без утечек памяти

Фактический результат: LeakCanary выдаёт утечку

┬───
│ GC Root: Input or output parameters in native code
│
├─ dalvik.system.PathClassLoader instance
│    Leaking: NO (MindboxDI↓ is not leaking and A ClassLoader is never leaking)
│    ↓ ClassLoader.runtimeInternalObjects
├─ java.lang.Object[] array
│    Leaking: NO (MindboxDI↓ is not leaking)
│    ↓ Object[255]
├─ cloud.mindbox.mobile_sdk.di.MindboxDI class
│    Leaking: NO (a class is never leaking)
│    ↓ static MindboxDI.appModule
│                       ~~~~~~~~~
├─ cloud.mindbox.mobile_sdk.di.modules.AppModuleKt$AppModule$1 instance
│    Leaking: UNKNOWN
│    Retaining 443,3 kB in 9600 objects
│    Anonymous class implementing cloud.mindbox.mobile_sdk.di.modules.AppModule
│    ↓ AppModuleKt$AppModule$1.$$delegate_3
│                              ~~~~~~~~~~~~
├─ cloud.mindbox.mobile_sdk.di.modules.PresentationModuleKt$PresentationModule$1 instance
│    Leaking: UNKNOWN
│    Retaining 430,9 kB in 9171 objects
│    Anonymous class implementing cloud.mindbox.mobile_sdk.di.modules.PresentationModule
│    ↓ PresentationModuleKt$PresentationModule$1.inAppMessageViewDisplayer$delegate
│                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
├─ kotlin.SynchronizedLazyImpl instance
│    Leaking: UNKNOWN
│    Retaining 20 B in 1 objects
│    ↓ SynchronizedLazyImpl._value
│                           ~~~~~~
├─ cloud.mindbox.mobile_sdk.inapp.presentation.InAppMessageViewDisplayerImpl instance
│    Leaking: UNKNOWN
│    Retaining 430,7 kB in 9164 objects
│    currentActivity instance of ru.tbank.core.tid.ui.webView.TidWebViewAuthActivity with mDestroyed = false
│    ↓ InAppMessageViewDisplayerImpl.inAppCallback
│                                    ~~~~~~~~~~~~~
├─ .....MainActivity$registerInAppCallback$1 instance
│    Leaking: UNKNOWN
│    Retaining 430,7 kB in 9161 objects
│    Anonymous class implementing cloud.mindbox.mobile_sdk.inapp.presentation.InAppCallback
│    this$0 instance of .....MainActivity with mDestroyed = true
│    ↓ MainActivity$registerInAppCallback$1.this$0
│                                           ~~~~~~
╰→ .....MainActivity instance
 Leaking: YES (ObjectWatcher was watching this because ....MainActivity received
Activity#onDestroy() callback and Activity#mDestroyed is true)
Retaining 430,7 kB in 9160 objects
key = db92a149-42f7-4053-b06e-6328062f683d
watchDurationMillis = 5757
retainedDurationMillis = 757
mApplication instance of ....MainApplication
mBase instance of androidx.appcompat.view.ContextThemeWrapper

P.s. пробовали присваивать null колбэку InAppCallback в onDestroy активити А, но утечка сохраняется

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions