Skip to content
This repository has been archived by the owner on Jan 15, 2024. It is now read-only.

AppListFragment has leaked #179

Open
michaelsam94 opened this issue Feb 9, 2019 · 0 comments
Open

AppListFragment has leaked #179

michaelsam94 opened this issue Feb 9, 2019 · 0 comments

Comments

@michaelsam94
Copy link
Contributor

In subreddit.android.appstore:0.9.1:9100.

  • subreddit.android.appstore.screens.list.AppListFragment has leaked:

  • GC ROOT static subreddit.android.appstore.AppStoreApp$Injector.INSTANCE

  • references subreddit.android.appstore.AppStoreApp$Injector.appComponent

  • references subreddit.android.appstore.DaggerAppComponent.provideBackendServiceProvider

  • references dagger.internal.DoubleCheck.instance

  • references subreddit.android.appstore.backend.reddit.wiki.LiveWikiRepository.dataReplayer

  • references io.reactivex.subjects.ReplaySubject.observers

  • references java.util.concurrent.atomic.AtomicReference.value

  • references array io.reactivex.subjects.ReplaySubject$ReplayDisposable[].[1]

  • references io.reactivex.subjects.ReplaySubject$ReplayDisposable.actual

  • references io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.actual

  • references io.reactivex.internal.operators.observable.ObservableMap$MapObserver.actual

  • references io.reactivex.internal.operators.observable.ObservableReplay$ReplayObserver.observers

  • references java.util.concurrent.atomic.AtomicReference.value

  • references array io.reactivex.internal.operators.observable.ObservableReplay$InnerDisposable[].[0]

  • references io.reactivex.internal.operators.observable.ObservableReplay$InnerDisposable.child

  • references io.reactivex.internal.operators.observable.ObservableRefCount$RefCountObserver.actual

  • references io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.actual

  • references io.reactivex.internal.observers.LambdaObserver.onNext

  • references subreddit.android.appstore.screens.list.-$$Lambda$AppListPresenter$hLw7A5dp0BkFfO47oX_b3eS7guY.f$0

  • leaks subreddit.android.appstore.screens.list.AppListFragment instance

  • Retaining: 22 KB.

  • Reference Key: bba6bcfb-052a-41f0-a1eb-676082380730

  • Device: Sony Sony D6503 D6503

  • Android Version: 6.0.1 API: 23 LeakCanary: 1.5.4 74837f0

  • Durations: watch=12421ms, gc=171ms, heap dump=7707ms, analysis=539158ms

  • Details:

  • Class subreddit.android.appstore.AppStoreApp$Injector
    | static $VALUES = subreddit.android.appstore.AppStoreApp$Injector[1]@315542464 (0x12cecbc0)
    | static $staticOverhead = byte[24]@315982913 (0x12d58441)
    | static INSTANCE = subreddit.android.appstore.AppStoreApp$Injector@316062208 (0x12d6ba00)
    | static $change = null

  • Instance of subreddit.android.appstore.AppStoreApp$Injector
    | static $VALUES = subreddit.android.appstore.AppStoreApp$Injector[1]@315542464 (0x12cecbc0)
    | static $staticOverhead = byte[24]@315982913 (0x12d58441)
    | static INSTANCE = subreddit.android.appstore.AppStoreApp$Injector@316062208 (0x12d6ba00)
    | static $change = null
    | appComponent = subreddit.android.appstore.DaggerAppComponent@316153664 (0x12d81f40)
    | name = java.lang.String@316062240 (0x12d6ba20)
    | ordinal = 0
    | shadow$klass = subreddit.android.appstore.AppStoreApp$Injector
    | shadow$monitor = 0

  • Instance of subreddit.android.appstore.DaggerAppComponent
    | static $staticOverhead = byte[16]@315986273 (0x12d59161)
    | static serialVersionUID = 1155296144500635599
    | static $change = null
    | bodyParserProvider = subreddit.android.appstore.backend.reddit.wiki.parser.BodyParser_Factory@317360528 (0x12ea8990)
    | provideAppParsersProvider = subreddit.android.appstore.backend.reddit.wiki.WikiRepositoryModule_ProvideAppParsersFactory@317360512 (0x12ea8980)
    | provideBackendServiceProvider = dagger.internal.DoubleCheck@317360576 (0x12ea89c0)
    | provideCategoryParserProvider = subreddit.android.appstore.backend.reddit.wiki.WikiRepositoryModule_ProvideCategoryParserFactory@317360496 (0x12ea8970)
    | provideContextProvider = dagger.internal.DoubleCheck@317360224 (0x12ea8860)
    | provideDeviceIdentifierProvider = dagger.internal.DoubleCheck@317360288 (0x12ea88a0)
    | provideEncodingFixerProvider = subreddit.android.appstore.backend.reddit.wiki.WikiRepositoryModule_ProvideEncodingFixerFactory@317360480 (0x12ea8960)
    | provideGithubApiProvider = dagger.internal.DoubleCheck@317360656 (0x12ea8a10)
    | provideGithubRepositoryProvider = dagger.internal.DoubleCheck@317360688 (0x12ea8a30)
    | provideGsonProvider = dagger.internal.DoubleCheck@317360416 (0x12ea8920)
    | provideOkHttpClientProvider = dagger.internal.DoubleCheck@317360352 (0x12ea88e0)
    | providePreferencesProvider = dagger.internal.DoubleCheck@317360256 (0x12ea8880)
    | provideScrapeDiskCacheProvider = dagger.internal.DoubleCheck@317360608 (0x12ea89e0)
    | provideScraperProvider = dagger.internal.DoubleCheck@317360624 (0x12ea89f0)
    | provideTokenApiProvider = dagger.internal.DoubleCheck@317360384 (0x12ea8900)
    | provideTokenSourceProvider = dagger.internal.DoubleCheck@317360432 (0x12ea8930)
    | provideUserAgentInterceptorProvider = dagger.internal.DoubleCheck@317360320 (0x12ea88c0)
    | provideWikiApiProvider = dagger.internal.DoubleCheck@317360560 (0x12ea89b0)
    | provideWikiDiskCacheProvider = dagger.internal.DoubleCheck@317360464 (0x12ea8950)
    | shadow$klass = subreddit.android.appstore.DaggerAppComponent
    | shadow$monitor = 0

  • Instance of dagger.internal.DoubleCheck
    | static $staticOverhead = byte[16]@317552737 (0x12ed7861)
    | static UNINITIALIZED = java.lang.Object@317360208 (0x12ea8850)
    | static $assertionsDisabled = false
    | instance = subreddit.android.appstore.backend.reddit.wiki.LiveWikiRepository@319624704 (0x130d1600)
    | provider = null
    | shadow$klass = dagger.internal.DoubleCheck
    | shadow$monitor = 0

  • Instance of subreddit.android.appstore.backend.reddit.wiki.LiveWikiRepository
    | static $staticOverhead = byte[24]@317563409 (0x12eda211)
    | static serialVersionUID = -4941886563438735451
    | static NUMOFREVISIONS = 6
    | static $change = null
    | authString = null
    | bodyParser = subreddit.android.appstore.backend.reddit.wiki.parser.BodyParser@319474576 (0x130acb90)
    | dataReplayer = io.reactivex.subjects.ReplaySubject@320603744 (0x131c0660)
    | tokenRepository = subreddit.android.appstore.backend.reddit.TokenRepository@319503936 (0x130b3e40)
    | wikiApi = $Proxy1@319627392 (0x130d2080)
    | wikiDiskCache = subreddit.android.appstore.backend.reddit.wiki.caching.WikiDiskCache@319474240 (0x130aca40)
    | shadow$klass = subreddit.android.appstore.backend.reddit.wiki.LiveWikiRepository
    | shadow$monitor = 0

  • Instance of io.reactivex.subjects.ReplaySubject
    | static EMPTY_ARRAY = java.lang.Object[0]@320468672 (0x1319f6c0)
    | static EMPTY = io.reactivex.subjects.ReplaySubject$ReplayDisposable[0]@320468640 (0x1319f6a0)
    | static $staticOverhead = byte[24]@318650369 (0x12fe3801)
    | static TERMINATED = io.reactivex.subjects.ReplaySubject$ReplayDisposable[0]@320468656 (0x1319f6b0)
    | buffer = io.reactivex.subjects.ReplaySubject$SizeBoundReplayBuffer@320603776 (0x131c0680)
    | done = false
    | observers = java.util.concurrent.atomic.AtomicReference@320468736 (0x1319f700)
    | shadow$klass = io.reactivex.subjects.ReplaySubject
    | shadow$monitor = 0

  • Instance of java.util.concurrent.atomic.AtomicReference
    | static valueOffset = 8
    | static unsafe = sun.misc.Unsafe@1899077592 (0x71319fd8)
    | static $staticOverhead = byte[24]@1899534017 (0x713896c1)
    | static serialVersionUID = -1848883965231344442
    | value = io.reactivex.subjects.ReplaySubject$ReplayDisposable[6]@318273232 (0x12f876d0)
    | shadow$klass = java.util.concurrent.atomic.AtomicReference
    | shadow$monitor = 0

  • Array of io.reactivex.subjects.ReplaySubject$ReplayDisposable[]
    | [0] = io.reactivex.subjects.ReplaySubject$ReplayDisposable@321096032 (0x13238960)
    | [1] = io.reactivex.subjects.ReplaySubject$ReplayDisposable@321353568 (0x13277760)
    | [2] = io.reactivex.subjects.ReplaySubject$ReplayDisposable@323997184 (0x134fce00)
    | [3] = io.reactivex.subjects.ReplaySubject$ReplayDisposable@319098272 (0x13050da0)
    | [4] = io.reactivex.subjects.ReplaySubject$ReplayDisposable@331090080 (0x13bc08a0)
    | [5] = io.reactivex.subjects.ReplaySubject$ReplayDisposable@315961536 (0x12d530c0)

  • Instance of io.reactivex.subjects.ReplaySubject$ReplayDisposable
    | static $staticOverhead = byte[8]@319920129 (0x13119801)
    | static serialVersionUID = 466549804534799122
    | actual = io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver@321348848 (0x132764f0)
    | cancelled = false
    | index = io.reactivex.subjects.ReplaySubject$Node@329284528 (0x13a07bb0)
    | state = io.reactivex.subjects.ReplaySubject@320603744 (0x131c0660)
    | value = 0
    | shadow$klass = io.reactivex.subjects.ReplaySubject$ReplayDisposable
    | shadow$monitor = 0

  • Instance of io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver
    | static $staticOverhead = byte[8]@319927297 (0x1311b401)
    | static serialVersionUID = 6576896619930983584
    | actual = io.reactivex.internal.operators.observable.ObservableMap$MapObserver@321353376 (0x132776a0)
    | bufferSize = 128
    | cancelled = false
    | delayError = false
    | done = false
    | error = null
    | outputFused = false
    | queue = io.reactivex.internal.queue.SpscLinkedArrayQueue@321348896 (0x13276520)
    | s = io.reactivex.subjects.ReplaySubject$ReplayDisposable@321353568 (0x13277760)
    | sourceMode = 0
    | worker = io.reactivex.internal.schedulers.ComputationScheduler$EventLoopWorker@321353408 (0x132776c0)
    | value = 0
    | shadow$klass = io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver
    | shadow$monitor = 0

  • Instance of io.reactivex.internal.operators.observable.ObservableMap$MapObserver
    | mapper = subreddit.android.appstore.screens.list.-$$Lambda$AppListPresenter$Kp9O-8WGIZI1opnQ_5ir3uISYIo@321317152 (0x1326e920)
    | actual = io.reactivex.internal.operators.observable.ObservableReplay$ReplayObserver@321353312 (0x13277660)
    | done = false
    | qs = io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver@321348848 (0x132764f0)
    | s = io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver@321348848 (0x132764f0)
    | sourceMode = 0
    | shadow$klass = io.reactivex.internal.operators.observable.ObservableMap$MapObserver
    | shadow$monitor = 0

  • Instance of io.reactivex.internal.operators.observable.ObservableReplay$ReplayObserver
    | static EMPTY = io.reactivex.internal.operators.observable.ObservableReplay$InnerDisposable[0]@321317440 (0x1326ea40)
    | static $staticOverhead = byte[24]@319935489 (0x1311d401)
    | static TERMINATED = io.reactivex.internal.operators.observable.ObservableReplay$InnerDisposable[0]@321317456 (0x1326ea50)
    | static serialVersionUID = -533785617179540163
    | buffer = io.reactivex.internal.operators.observable.ObservableReplay$UnboundedReplayBuffer@321353280 (0x13277640)
    | done = false
    | observers = java.util.concurrent.atomic.AtomicReference@321317472 (0x1326ea60)
    | shouldConnect = java.util.concurrent.atomic.AtomicBoolean@321317488 (0x1326ea70)
    | value = io.reactivex.internal.operators.observable.ObservableMap$MapObserver@321353376 (0x132776a0)
    | shadow$klass = io.reactivex.internal.operators.observable.ObservableReplay$ReplayObserver
    | shadow$monitor = 0

  • Instance of java.util.concurrent.atomic.AtomicReference
    | static valueOffset = 8
    | static unsafe = sun.misc.Unsafe@1899077592 (0x71319fd8)
    | static $staticOverhead = byte[24]@1899534017 (0x713896c1)
    | static serialVersionUID = -1848883965231344442
    | value = io.reactivex.internal.operators.observable.ObservableReplay$InnerDisposable[1]@324240496 (0x13538470)
    | shadow$klass = java.util.concurrent.atomic.AtomicReference
    | shadow$monitor = 0

  • Array of io.reactivex.internal.operators.observable.ObservableReplay$InnerDisposable[]
    | [0] = io.reactivex.internal.operators.observable.ObservableReplay$InnerDisposable@321354112 (0x13277980)

  • Instance of io.reactivex.internal.operators.observable.ObservableReplay$InnerDisposable
    | static $staticOverhead = byte[8]@319937537 (0x1311dc01)
    | static serialVersionUID = 2728361546769921047
    | cancelled = false
    | child = io.reactivex.internal.operators.observable.ObservableRefCount$RefCountObserver@321354080 (0x13277960)
    | index = java.lang.Integer@1898867600 (0x712e6b90)
    | parent = io.reactivex.internal.operators.observable.ObservableReplay$ReplayObserver@321353312 (0x13277660)
    | value = 0
    | shadow$klass = io.reactivex.internal.operators.observable.ObservableReplay$InnerDisposable
    | shadow$monitor = 0

  • Instance of io.reactivex.internal.operators.observable.ObservableRefCount$RefCountObserver
    | static $staticOverhead = byte[8]@321044385 (0x1322bfa1)
    | static serialVersionUID = -7419642935409022375
    | actual = io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver@321349136 (0x13276610)
    | connection = io.reactivex.internal.operators.observable.ObservableRefCount$RefConnection@321353216 (0x13277600)
    | parent = io.reactivex.internal.operators.observable.ObservableRefCount@321348704 (0x13276460)
    | upstream = io.reactivex.internal.operators.observable.ObservableReplay$InnerDisposable@321354112 (0x13277980)
    | value = 0
    | shadow$klass = io.reactivex.internal.operators.observable.ObservableRefCount$RefCountObserver
    | shadow$monitor = 0

  • Instance of io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver
    | static $staticOverhead = byte[8]@319927297 (0x1311b401)
    | static serialVersionUID = 6576896619930983584
    | actual = io.reactivex.internal.observers.LambdaObserver@321354048 (0x13277940)
    | bufferSize = 128
    | cancelled = false
    | delayError = false
    | done = false
    | error = null
    | outputFused = false
    | queue = io.reactivex.internal.queue.SpscLinkedArrayQueue@321349184 (0x13276640)
    | s = io.reactivex.internal.operators.observable.ObservableRefCount$RefCountObserver@321354080 (0x13277960)
    | sourceMode = 0
    | worker = io.reactivex.android.schedulers.HandlerScheduler$HandlerWorker@321317888 (0x1326ec00)
    | value = 0
    | shadow$klass = io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver
    | shadow$monitor = 0

  • Instance of io.reactivex.internal.observers.LambdaObserver
    | static $staticOverhead = byte[8]@315897857 (0x12d43801)
    | static serialVersionUID = -7251123623727029452
    | onComplete = io.reactivex.internal.functions.Functions$EmptyAction@320871792 (0x13201d70)
    | onError = io.reactivex.internal.functions.Functions$OnErrorMissingConsumer@320871840 (0x13201da0)
    | onNext = subreddit.android.appstore.screens.list.-$$Lambda$AppListPresenter$hLw7A5dp0BkFfO47oX_b3eS7guY@321317872 (0x1326ebf0)
    | onSubscribe = io.reactivex.internal.functions.Functions$EmptyConsumer@320871808 (0x13201d80)
    | value = io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver@321349136 (0x13276610)
    | shadow$klass = io.reactivex.internal.observers.LambdaObserver
    | shadow$monitor = 0

  • Instance of subreddit.android.appstore.screens.list.-$$Lambda$AppListPresenter$hLw7A5dp0BkFfO47oX_b3eS7guY
    | f$0 = subreddit.android.appstore.screens.list.AppListFragment@316166704 (0x12d85230)
    | shadow$klass = subreddit.android.appstore.screens.list.-$$Lambda$AppListPresenter$hLw7A5dp0BkFfO47oX_b3eS7guY
    | shadow$monitor = 0

  • Instance of subreddit.android.appstore.screens.list.AppListFragment
    | static $staticOverhead = byte[24]@317435905 (0x12ebb001)
    | static serialVersionUID = 5099902597980033902
    | static ARG_KEY_CATEGORYFILTER = java.lang.String@1897229192 (0x71156b88)
    | static $change = null
    | appList = null
    | appListAdapter = subreddit.android.appstore.screens.list.AppListAdapter@319839344 (0x13105c70)
    | appTags = java.util.ArrayList@319096224 (0x130505a0)
    | closeDrawerOnBackKeyListener = subreddit.android.appstore.screens.list.-$$Lambda$AppListFragment$eHoar-OFir_3L_KQqXES6_K-QZM@319890016 (0x13112260)
    | drawerLayout = null
    | fastscroller = null
    | filterList = null
    | filterListAdapter = subreddit.android.appstore.screens.list.FilterListAdapter@319963728 (0x13124250)
    | presenterFactory = subreddit.android.appstore.screens.list.AppListModule$1@319844896 (0x13107220)
    | searchView = android.support.v7.widget.SearchView@329657344 (0x13a62c00)
    | swipeRefresh = null
    | unbinder = subreddit.android.appstore.screens.list.AppListFragment_ViewBinding@319795136 (0x130fafc0)
    | presenter = subreddit.android.appstore.screens.list.AppListPresenter@319983776 (0x131290a0)
    | mAdded = false
    | mAnimationInfo = null
    | mArguments = android.os.Bundle@319096256 (0x130505c0)
    | mBackStackNesting = 0
    | mCalled = true
    | mChildFragmentManager = null
    | mChildNonConfig = null
    | mContainer = null
    | mContainerId = 0
    | mDeferStart = false
    | mDetached = false
    | mFragmentId = 0
    | mFragmentManager = null
    | mFromLayout = false
    | mHasMenu = true
    | mHidden = false
    | mHiddenChanged = false
    | mHost = null
    | mInLayout = false
    | mIndex = -1
    | mInnerView = null
    | mIsCreated = false
    | mIsNewlyAdded = false
    | mLayoutInflater = null
    | mLifecycleRegistry = android.arch.lifecycle.LifecycleRegistry@319096064 (0x13050500)
    | mMenuVisible = true
    | mParentFragment = null
    | mPerformedCreateView = false
    | mPostponedAlpha = 0.0
    | mRemoving = false
    | mRestored = false
    | mRetainInstance = false
    | mRetaining = false
    | mSavedFragmentState = null
    | mSavedUserVisibleHint = null
    | mSavedViewState = android.util.SparseArray@323930592 (0x134ec9e0)
    | mState = 0
    | mTag = null
    | mTarget = null
    | mTargetIndex = -1
    | mTargetRequestCode = 0
    | mUserVisibleHint = true
    | mView = null
    | mViewLifecycleOwner = null
    | mViewLifecycleOwnerLiveData = android.arch.lifecycle.MutableLiveData@319052096 (0x13045940)
    | mViewLifecycleRegistry = android.arch.lifecycle.LifecycleRegistry@319863712 (0x1310bba0)
    | mViewModelStore = android.arch.lifecycle.ViewModelStore@319890048 (0x13112280)
    | mWho = null
    | shadow$klass = subreddit.android.appstore.screens.list.AppListFragment
    | shadow$monitor = 0

  • Excluded Refs:
    | Field: android.view.inputmethod.InputMethodManager.mNextServedView
    | Field: android.view.inputmethod.InputMethodManager.mServedView
    | Field: android.view.inputmethod.InputMethodManager.mServedInputConnection
    | Field: android.view.inputmethod.InputMethodManager.mCurRootView
    | Field: android.os.UserManager.mContext
    | Field: android.net.ConnectivityManager.sInstance
    | Field: android.view.Choreographer$FrameDisplayEventReceiver.mMessageQueue (always)
    | Thread:FinalizerWatchdogDaemon (always)
    | Thread:main (always)
    | Thread:LeakCanary-Heap-Dump (always)
    | Class:java.lang.ref.WeakReference (always)
    | Class:java.lang.ref.SoftReference (always)
    | Class:java.lang.ref.PhantomReference (always)
    | Class:java.lang.ref.Finalizer (always)
    | Class:java.lang.ref.FinalizerReference (always)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants