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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions