-
Notifications
You must be signed in to change notification settings - Fork 7.6k
Description
Hello,
Underlying is the stack trace while it gets stuck. Every disposables are maintained with a binder, and if the binder is killed, then the disposable also be disposed. But sometimes, it does not disposed like below even time past 10 hours. I think there's a deadlock. FYI, those disposables' dispose() can be called explicitly at another thread.
"Binder:10786_F" prio=5 tid=84 Runnable
| group="main" sCount=0 dsCount=0 flags=0 obj=0x12f04210 self=0x70abf2e800
| sysTid=18629 nice=0 cgrp=default sched=0/0 handle=0x70a83ef4f0
| state=R schedstat=( 13603466168186 263621227689 309484 ) utm=1360151 stm=194 core=6 HZ=100
| stack=0x70a82f4000-0x70a82f6000 stackSize=1009KB
| held mutexes= "mutator lock"(shared held)
at java.util.concurrent.atomic.AtomicReferenceArray.get(AtomicReferenceArray.java:124)
at io.reactivex.internal.queue.SpscLinkedArrayQueue.poll(SpscLinkedArrayQueue.java:8251)
at io.reactivex.internal.queue.SpscLinkedArrayQueue.clear(SpscLinkedArrayQueue.java:186)
at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.dispose(ObservableObserveOn.java:149)
at io.reactivex.internal.observers.BasicFuseableObserver.dispose(BasicFuseableObserver.java:152)
at io.reactivex.internal.observers.BasicFuseableObserver.dispose(BasicFuseableObserver.java:152)
at io.reactivex.internal.operators.observable.ObservableSampleTimed$SampleTimedObserver.dispose(ObservableSampleTimed.java:104)
at io.reactivex.observers.SerializedObserver.dispose(SerializedObserver.java:77)
at io.reactivex.internal.operators.observable.ObservableDoOnEach$DoOnEachObserver.dispose(ObservableDoOnEach.java:79)
at io.reactivex.internal.disposables.DisposableHelper.dispose(DisposableHelper.java:124)
at io.reactivex.internal.disposables.SequentialDisposable.dispose(SequentialDisposable.java:72)
at io.reactivex.internal.disposables.DisposableHelper.dispose(DisposableHelper.java:124)
at io.reactivex.internal.observers.LambdaObserver.dispose(LambdaObserver.java:102)
.... My code traces....
at android.os.BinderProxy.sendDeathNotice(Binder.java:1211)