question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

ANR in com.google.android.exoplayer2.PlayerMessage.blockUntilDelivered()

See original GitHub issue

Issue description

I see ANR in Google Play Console on Xiaomi MiBox S (oneday), Android 8.1 (I use ExoPlayer r2.9.6, but this device is absent in ExoPlayer r2.10.0 MediaCodecVideoRenderer.codecNeedsSetOutputSurfaceWorkaround() too)

Reproduction steps

Unknown

Link to test content

Unknown

Version of ExoPlayer being used

r2.9.6

A full bug report captured from the device

Xiaomi MiBox S (oneday), Android 8.1


"main" tid=1 Waiting
"main" prio=5 tid=1 Waiting
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x7319a978 self=0xee0cc000
  | sysTid=24873 nice=-10 cgrp=default sched=0/0 handle=0xf1a404a4
  | state=S schedstat=( 65302758425 24240539006 99507 ) utm=5317 stm=1212 core=1 HZ=100
  | stack=0xff010000-0xff012000 stackSize=8MB
  | held mutexes=
 
  at java.lang.Object.wait (Object.java)
- waiting on <0x0d4cc94b> (a com.google.android.exoplayer2.v)
 
  at com.google.android.exoplayer2.PlayerMessage.blockUntilDelivered (PlayerMessage.java:282)
- locked <0x0d4cc94b> (a com.google.android.exoplayer2.v)
 
  at com.google.android.exoplayer2.SimpleExoPlayer.setVideoSurfaceInternal (SimpleExoPlayer.java:1150)
 
  at com.google.android.exoplayer2.SimpleExoPlayer.setVideoSurfaceHolder (SimpleExoPlayer.java:340)
 
  at ru.kinopoisk.tv.presentation.player.PlayerAdapterImpl.setDisplay (PlayerAdapterImpl.java:62)
 
  at ru.kinopoisk.tv.presentation.player.PlayerAdapterImpl.access$setDisplay (PlayerAdapterImpl.java:17)
 
  at ru.kinopoisk.tv.presentation.player.PlayerAdapterImpl$VideoPlayerSurfaceHolderCallback.surfaceDestroyed (PlayerAdapterImpl.java:215)
 
  at android.support.v17.leanback.app.VideoSupportFragment$1.surfaceDestroyed (VideoSupportFragment.java:65)
 
  at android.view.SurfaceView.updateSurface (SurfaceView.java:620)
 
  at android.view.SurfaceView.onWindowVisibilityChanged (SurfaceView.java:248)
 
  at android.view.View.dispatchWindowVisibilityChanged (View.java:12133)
 
  at android.view.ViewGroup.dispatchWindowVisibilityChanged (ViewGroup.java:1491)
 
  at android.view.ViewGroup.dispatchWindowVisibilityChanged (ViewGroup.java:1491)
 
  at android.view.ViewGroup.dispatchWindowVisibilityChanged (ViewGroup.java:1491)
 
  at android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:1686)
 
  at android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1392)
 
  at android.view.ViewRootImpl$TraversalRunnable.run (ViewRootImpl.java:6752)
 
  at android.view.Choreographer$CallbackRecord.run (Choreographer.java:911)
 
  at android.view.Choreographer.doCallbacks (Choreographer.java:723)
 
  at android.view.Choreographer.doFrame (Choreographer.java:658)
 
  at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:897)
 
  at android.os.Handler.handleCallback (Handler.java:790)
 
  at android.os.Handler.dispatchMessage (Handler.java:99)
 
  at android.os.Looper.loop (Looper.java:164)
 
  at android.app.ActivityThread.main (ActivityThread.java:6494)
 
  at java.lang.reflect.Method.invoke (Method.java)
 
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:438)
 
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:807)
"Jit thread pool worker thread 0" tid=2 Native
"Jit thread pool worker thread 0" daemon prio=5 tid=2 Native
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12fc0218 self=0xe640c000
  | sysTid=24878 nice=9 cgrp=default sched=0/0 handle=0xe63ff970
  | state=S schedstat=( 894260060 295834023 772 ) utm=78 stm=10 core=3 HZ=100
  | stack=0xe6301000-0xe6303000 stackSize=1022KB
  | held mutexes=
 
  #00  pc 0000000000018ce8  /system/lib/libc.so (syscall+28)
 
  #01  pc 00000000000b7889  /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+88)
 
  #02  pc 00000000003941df  /system/lib/libart.so (art::ThreadPool::GetTask(art::Thread*)+170)
 
  #03  pc 0000000000393b4b  /system/lib/libart.so (art::ThreadPoolWorker::Run()+62)
 
  #04  pc 000000000039376b  /system/lib/libart.so (art::ThreadPoolWorker::Callback(void*)+90)
 
  #05  pc 0000000000047e23  /system/lib/libc.so (__pthread_start(void*)+22)
 
  #06  pc 000000000001b287  /system/lib/libc.so (__start_thread+32)
"ReferenceQueueDaemon" tid=4 Waiting
"ReferenceQueueDaemon" daemon prio=5 tid=4 Waiting
  | group="system" sCount=1 dsCount=0 flags=1 obj=0x12fc0328 self=0xe614e400
  | sysTid=24880 nice=4 cgrp=default sched=0/0 handle=0xd6b81970
  | state=S schedstat=( 173970337 338454037 436 ) utm=11 stm=6 core=2 HZ=100
  | stack=0xd6a7f000-0xd6a81000 stackSize=1038KB
  | held mutexes=
 
  at java.lang.Object.wait (Native method)
- waiting on <0x0a08bf28> (a java.lang.Class<java.lang.ref.ReferenceQueue>)
 
  at java.lang.Daemons$ReferenceQueueDaemon.runInternal (Daemons.java:178)
- locked <0x0a08bf28> (a java.lang.Class<java.lang.ref.ReferenceQueue>)
 
  at java.lang.Daemons$Daemon.run (Daemons.java:103)
 
  at java.lang.Thread.run (Thread.java:764)
"FinalizerWatchdogDaemon" tid=5 Waiting
"FinalizerWatchdogDaemon" daemon prio=5 tid=5 Waiting
  | group="system" sCount=1 dsCount=0 flags=1 obj=0x12fc03b0 self=0xe3836600
  | sysTid=24882 nice=4 cgrp=default sched=0/0 handle=0xd6977970
  | state=S schedstat=( 6853083 20020581 81 ) utm=0 stm=0 core=3 HZ=100
  | stack=0xd6875000-0xd6877000 stackSize=1038KB
  | held mutexes=
 
  at java.lang.Object.wait (Native method)
- waiting on <0x00e7c441> (a java.lang.Daemons$FinalizerWatchdogDaemon)
 
  at java.lang.Daemons$FinalizerWatchdogDaemon.sleepUntilNeeded (Daemons.java:297)
- locked <0x00e7c441> (a java.lang.Daemons$FinalizerWatchdogDaemon)
 
  at java.lang.Daemons$FinalizerWatchdogDaemon.runInternal (Daemons.java:277)
 
  at java.lang.Daemons$Daemon.run (Daemons.java:103)
 
  at java.lang.Thread.run (Thread.java:764)
"FinalizerDaemon" tid=7 Waiting
"FinalizerDaemon" daemon prio=5 tid=7 Waiting
  | group="system" sCount=1 dsCount=0 flags=1 obj=0x12fc0438 self=0xe614ea00
  | sysTid=24881 nice=4 cgrp=default sched=0/0 handle=0xd6a7c970
  | state=S schedstat=( 110874289 284324545 246 ) utm=5 stm=5 core=3 HZ=100
  | stack=0xd697a000-0xd697c000 stackSize=1038KB
  | held mutexes=
 
  at java.lang.Object.wait (Native method)
- waiting on <0x0bc08de6> (a java.lang.Object)
 
  at java.lang.Object.wait (Object.java:422)
 
  at java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:188)
- locked <0x0bc08de6> (a java.lang.Object)
 
  at java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:209)
 
  at java.lang.Daemons$FinalizerDaemon.runInternal (Daemons.java:232)
 
  at java.lang.Daemons$Daemon.run (Daemons.java:103)
 
  at java.lang.Thread.run (Thread.java:764)
"Binder:24873_1" tid=8 Native
"Binder:24873_1" prio=5 tid=8 Native
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12fc04c0 self=0xe640fc00
  | sysTid=24884 nice=0 cgrp=default sched=0/0 handle=0xd666f970
  | state=S schedstat=( 548391422 3745487710 7263 ) utm=7 stm=47 core=2 HZ=100
  | stack=0xd6575000-0xd6577000 stackSize=1006KB
  | held mutexes=
 
  #00  pc 0000000000049574  /system/lib/libc.so (__ioctl+8)
 
  #01  pc 000000000001e0ff  /system/lib/libc.so (ioctl+38)
 
  #02  pc 0000000000042759  /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+204)
 
  #03  pc 0000000000042865  /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+8)
 
  #04  pc 0000000000042dc7  /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+38)
 
  #05  pc 000000000005867d  /system/lib/libbinder.so (???)
 
  #06  pc 000000000000d2c5  /system/lib/libutils.so (android::Thread::_threadLoop(void*)+144)
 
  #07  pc 000000000006de7d  /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+80)
 
  #08  pc 0000000000047e23  /system/lib/libc.so (__pthread_start(void*)+22)
 
  #09  pc 000000000001b287  /system/lib/libc.so (__start_thread+32)
"Binder:24873_2" tid=9 Native
"Binder:24873_2" prio=5 tid=9 Native
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12fc0548 self=0xee10d200
  | sysTid=24885 nice=0 cgrp=default sched=0/0 handle=0xd6572970
  | state=S schedstat=( 305792381 1276441208 3799 ) utm=8 stm=21 core=1 HZ=100
  | stack=0xd6478000-0xd647a000 stackSize=1006KB
  | held mutexes=
 
  #00  pc 0000000000049574  /system/lib/libc.so (__ioctl+8)
 
  #01  pc 000000000001e0ff  /system/lib/libc.so (ioctl+38)
 
  #02  pc 0000000000042759  /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+204)
 
  #03  pc 0000000000042865  /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+8)
 
  #04  pc 0000000000042dc7  /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+38)
 
  #05  pc 000000000005867d  /system/lib/libbinder.so (???)
 
  #06  pc 000000000000d2c5  /system/lib/libutils.so (android::Thread::_threadLoop(void*)+144)
 
  #07  pc 000000000006de7d  /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+80)
 
  #08  pc 0000000000047e23  /system/lib/libc.so (__pthread_start(void*)+22)
 
  #09  pc 000000000001b287  /system/lib/libc.so (__start_thread+32)
"Profile Saver" tid=10 Native
"Profile Saver" daemon prio=5 tid=10 Native
  | group="system" sCount=1 dsCount=0 flags=1 obj=0x12fc05d0 self=0xe641e800
  | sysTid=24886 nice=9 cgrp=default sched=0/0 handle=0xd527f970
  | state=S schedstat=( 67252081 15107208 61 ) utm=6 stm=0 core=2 HZ=100
  | stack=0xd5185000-0xd5187000 stackSize=1006KB
  | held mutexes=
 
  #00  pc 0000000000018ce8  /system/lib/libc.so (syscall+28)
 
  #01  pc 00000000000b7889  /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+88)
 
  #02  pc 0000000000277713  /system/lib/libart.so (art::ProfileSaver::Run()+346)
 
  #03  pc 0000000000279ac7  /system/lib/libart.so (art::ProfileSaver::RunProfileSaverThread(void*)+50)
 
  #04  pc 0000000000047e23  /system/lib/libc.so (__pthread_start(void*)+22)
 
  #05  pc 000000000001b287  /system/lib/libc.so (__start_thread+32)
"queued-work-looper" tid=11 Native
"queued-work-looper" prio=5 tid=11 Native
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12fc0658 self=0xe37ba600
  | sysTid=24891 nice=-2 cgrp=default sched=0/0 handle=0xd5059970
  | state=S schedstat=( 205865576 493664049 420 ) utm=5 stm=15 core=2 HZ=100
  | stack=0xd4f57000-0xd4f59000 stackSize=1038KB
  | held mutexes=
 
  #00  pc 0000000000049438  /system/lib/libc.so (__epoll_pwait+20)
 
  #01  pc 000000000001b681  /system/lib/libc.so (epoll_pwait+60)
 
  #02  pc 000000000001b6b1  /system/lib/libc.so (epoll_wait+12)
 
  #03  pc 0000000000010153  /system/lib/libutils.so (android::Looper::pollInner(int)+118)
 
  #04  pc 0000000000010045  /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+32)
 
  #05  pc 00000000000b1f41  /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, _jobject*, int)+24)
 
  #06  pc 00000000001806e5  /system/framework/arm/boot-framework.oat (Java_android_os_MessageQueue_nativePollOnce__JI+92)
 
  at android.os.MessageQueue.nativePollOnce (Native method)
 
  at android.os.MessageQueue.next (MessageQueue.java:325)
 
  at android.os.Looper.loop (Looper.java:142)
 
  at android.os.HandlerThread.run (HandlerThread.java:65)
"Queue" tid=13 Waiting
"Queue" prio=10 tid=13 Waiting
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12fc07d8 self=0xe37bb200
  | sysTid=24893 nice=-8 cgrp=default sched=0/0 handle=0xd4e4f970
  | state=S schedstat=( 86199210 13305665 48 ) utm=8 stm=0 core=2 HZ=100
  | stack=0xd4d4d000-0xd4d4f000 stackSize=1038KB
  | held mutexes=
 
  at java.lang.Object.wait (Native method)
- waiting on <0x021caf27> (a java.lang.Object)
 
  at java.lang.Thread.parkFor$ (Thread.java:2137)
- locked <0x021caf27> (a java.lang.Object)
 
  at sun.misc.Unsafe.park (Unsafe.java:358)
 
  at java.util.concurrent.locks.LockSupport.park (LockSupport.java:190)
 
  at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2059)
 
  at java.util.concurrent.PriorityBlockingQueue.take (PriorityBlockingQueue.java:548)
 
  at io.fabric.sdk.android.services.concurrency.b.a (DependencyPriorityBlockingQueue.java:197)
 
  at io.fabric.sdk.android.services.concurrency.b.b (DependencyPriorityBlockingQueue.java:236)
 
  at io.fabric.sdk.android.services.concurrency.b.take (DependencyPriorityBlockingQueue.java:4065)
 
  at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1087)
 
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1147)
 
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
 
  at java.lang.Thread.run (Thread.java:764)
"Queue" tid=14 Waiting
"Queue" prio=10 tid=14 Waiting
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12fc1668 self=0xe37bb800
  | sysTid=24894 nice=10 cgrp=default sched=0/0 handle=0xd4d4a970
  | state=S schedstat=( 36173457 24273665 73 ) utm=2 stm=1 core=3 HZ=100
  | stack=0xd4c48000-0xd4c4a000 stackSize=1038KB
  | held mutexes=
 
  at java.lang.Object.wait (Native method)
- waiting on <0x02bea5d4> (a java.lang.Object)
 
  at java.lang.Thread.parkFor$ (Thread.java:2137)
- locked <0x02bea5d4> (a java.lang.Object)
 
  at sun.misc.Unsafe.park (Unsafe.java:358)
 
  at java.util.concurrent.locks.LockSupport.park (LockSupport.java:190)
 
  at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2059)
 
  at java.util.concurrent.PriorityBlockingQueue.take (PriorityBlockingQueue.java:548)
 
  at io.fabric.sdk.android.services.concurrency.b.a (DependencyPriorityBlockingQueue.java:197)
 
  at io.fabric.sdk.android.services.concurrency.b.b (DependencyPriorityBlockingQueue.java:236)
 
  at io.fabric.sdk.android.services.concurrency.b.take (DependencyPriorityBlockingQueue.java:4065)
 
  at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1087)
 
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1147)
 
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
 
  at java.lang.Thread.run (Thread.java:764)
"Queue" tid=15 Waiting
"Queue" prio=10 tid=15 Waiting
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12fc1970 self=0xe37bbe00
  | sysTid=24895 nice=10 cgrp=default sched=0/0 handle=0xd4c45970
  | state=S schedstat=( 1553999 900334 11 ) utm=0 stm=0 core=1 HZ=100
  | stack=0xd4b43000-0xd4b45000 stackSize=1038KB
  | held mutexes=
 
  at java.lang.Object.wait (Native method)
- waiting on <0x07ab637d> (a java.lang.Object)
 
  at java.lang.Thread.parkFor$ (Thread.java:2137)
- locked <0x07ab637d> (a java.lang.Object)
 
  at sun.misc.Unsafe.park (Unsafe.java:358)
 
  at java.util.concurrent.locks.LockSupport.park (LockSupport.java:190)
 
  at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2059)
 
  at java.util.concurrent.PriorityBlockingQueue.take (PriorityBlockingQueue.java:548)
 
  at io.fabric.sdk.android.services.concurrency.b.a (DependencyPriorityBlockingQueue.java:197)
 
  at io.fabric.sdk.android.services.concurrency.b.b (DependencyPriorityBlockingQueue.java:236)
 
  at io.fabric.sdk.android.services.concurrency.b.take (DependencyPriorityBlockingQueue.java:4065)
 
  at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1087)
 
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1147)
 
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
 
  at java.lang.Thread.run (Thread.java:764)
"Queue" tid=16 Waiting
"Queue" prio=10 tid=16 Waiting
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12fc1b78 self=0xe37bc400
  | sysTid=24896 nice=10 cgrp=default sched=0/0 handle=0xd4b40970
  | state=S schedstat=( 1450207 34667 11 ) utm=0 stm=0 core=1 HZ=100
  | stack=0xd4a3e000-0xd4a40000 stackSize=1038KB
  | held mutexes=
 
  at java.lang.Object.wait (Native method)
- waiting on <0x0bf7a272> (a java.lang.Object)
 
  at java.lang.Thread.parkFor$ (Thread.java:2137)
- locked <0x0bf7a272> (a java.lang.Object)
 
  at sun.misc.Unsafe.park (Unsafe.java:358)
 
  at java.util.concurrent.locks.LockSupport.park (LockSupport.java:190)
 
  at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2059)
 
  at java.util.concurrent.PriorityBlockingQueue.take (PriorityBlockingQueue.java:548)
 
  at io.fabric.sdk.android.services.concurrency.b.a (DependencyPriorityBlockingQueue.java:197)
 
  at io.fabric.sdk.android.services.concurrency.b.b (DependencyPriorityBlockingQueue.java:236)
 
  at io.fabric.sdk.android.services.concurrency.b.take (DependencyPriorityBlockingQueue.java:4065)
 
  at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1087)
 
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1147)
 
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
 
  at java.lang.Thread.run (Thread.java:764)
"Queue" tid=17 Waiting
"Queue" prio=10 tid=17 Waiting
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12fc1cf0 self=0xee0c0e00
  | sysTid=24897 nice=10 cgrp=default sched=0/0 handle=0xd4a3b970
  | state=S schedstat=( 1637541 1838667 5 ) utm=0 stm=0 core=2 HZ=100
  | stack=0xd4939000-0xd493b000 stackSize=1038KB
  | held mutexes=
 
  at java.lang.Object.wait (Native method)
- waiting on <0x021b16c3> (a java.lang.Object)
 
  at java.lang.Thread.parkFor$ (Thread.java:2137)
- locked <0x021b16c3> (a java.lang.Object)
 
  at sun.misc.Unsafe.park (Unsafe.java:358)
 
  at java.util.concurrent.locks.LockSupport.park (LockSupport.java:190)
 
  at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2059)
 
  at java.util.concurrent.PriorityBlockingQueue.take (PriorityBlockingQueue.java:548)
 
  at io.fabric.sdk.android.services.concurrency.b.a (DependencyPriorityBlockingQueue.java:197)
 
  at io.fabric.sdk.android.services.concurrency.b.b (DependencyPriorityBlockingQueue.java:236)
 
  at io.fabric.sdk.android.services.concurrency.b.take (DependencyPriorityBlockingQueue.java:4065)
 
  at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1087)
 
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1147)
 
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
 
  at java.lang.Thread.run (Thread.java:764)
"Crashlytics Exception Handler1" tid=18 Waiting
"Crashlytics Exception Handler1" prio=5 tid=18 Waiting
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12fc2018 self=0xe37c5c00
  | sysTid=24904 nice=10 cgrp=default sched=0/0 handle=0xd44fa970
  | state=S schedstat=( 149920490 327342624 507 ) utm=6 stm=8 core=1 HZ=100
  | stack=0xd43f8000-0xd43fa000 stackSize=1038KB
  | held mutexes=
 
  at java.lang.Object.wait (Native method)
- waiting on <0x0a0fba79> (a java.lang.Object)
 
  at java.lang.Thread.parkFor$ (Thread.java:2137)
- locked <0x0a0fba79> (a java.lang.Object)
 
  at sun.misc.Unsafe.park (Unsafe.java:358)
 
  at java.util.concurrent.locks.LockSupport.park (LockSupport.java:190)
 
  at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2059)
 
  at java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:442)
 
  at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1087)
 
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1147)
 
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
 
  at io.fabric.sdk.android.services.common.k$1$1.a (ExecutorUtils.java:75)
 
  at io.fabric.sdk.android.services.common.g.run (BackgroundPriorityRunnable.java:30)
 
  at java.lang.Thread.run (Thread.java:764)
"Answers Events Handler1" tid=19 Waiting
"Answers Events Handler1" prio=5 tid=19 Waiting
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12fc1eb8 self=0xe37bca00
  | sysTid=24900 nice=10 cgrp=default sched=0/0 handle=0xd4831970
  | state=S schedstat=( 15287333 15910082 31 ) utm=1 stm=0 core=1 HZ=100
  | stack=0xd472f000-0xd4731000 stackSize=1038KB
  | held mutexes=
 
  at java.lang.Object.wait (Native method)
- waiting on <0x044a4b40> (a java.lang.Object)
 
  at java.lang.Thread.parkFor$ (Thread.java:2137)
- locked <0x044a4b40> (a java.lang.Object)
 
  at sun.misc.Unsafe.park (Unsafe.java:358)
 
  at java.util.concurrent.locks.LockSupport.park (LockSupport.java:190)
 
  at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2059)
 
  at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1120)
 
  at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1113)
 
  at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1087)
 
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1147)
 
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
 
  at io.fabric.sdk.android.services.common.k$1$1.a (ExecutorUtils.java:75)
 
  at io.fabric.sdk.android.services.common.g.run (BackgroundPriorityRunnable.java:30)
 
  at java.lang.Thread.run (Thread.java:764)
"Thread-10" tid=20 Sleeping
"Thread-10" prio=5 tid=20 Sleeping
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12f84710 self=0xd4313a00
  | sysTid=24938 nice=0 cgrp=default sched=0/0 handle=0xced8c970
  | state=S schedstat=( 4149362563 7294931643 21934 ) utm=207 stm=207 core=1 HZ=100
  | stack=0xcec8a000-0xcec8c000 stackSize=1038KB
  | held mutexes=
 
  at java.lang.Thread.sleep (Native method)
- sleeping on <0x0f3e3c96> (a java.lang.Object)
 
  at java.lang.Thread.sleep (Thread.java:373)
- locked <0x0f3e3c96> (a java.lang.Object)
 
  at java.lang.Thread.sleep (Thread.java:314)
 
  at android.os.SystemClock.sleep (SystemClock.java:122)
 
  at c.a.b.run (EventSender.java:72)
 
  at java.lang.Thread.run (Thread.java:764)
"RxComputationThreadPool-4" tid=21 TimedWaiting
"RxComputationThreadPool-4" daemon prio=5 tid=21 TimedWaiting
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12fc2900 self=0xd3d20400
  | sysTid=24939 nice=0 cgrp=default sched=0/0 handle=0xcea89970
  | state=S schedstat=( 13225416 15876083 44 ) utm=0 stm=0 core=3 HZ=100
  | stack=0xce987000-0xce989000 stackSize=1038KB
  | held mutexes=
 
  at java.lang.Object.wait (Native method)
- waiting on <0x05f9b017> (a java.lang.Object)
 
  at java.lang.Thread.parkFor$ (Thread.java:2137)
- locked <0x05f9b017> (a java.lang.Object)
 
  at sun.misc.Unsafe.park (Unsafe.java:358)
 
  at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:230)
 
  at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:2101)
 
  at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1132)
 
  at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1113)
 
  at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1087)
 
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1147)
 
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
 
  at java.lang.Thread.run (Thread.java:764)
"YMM-APT-1" tid=22 Native
"YMM-APT-1" prio=5 tid=22 Native
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12f83dd8 self=0xe37c6800
  | sysTid=24908 nice=0 cgrp=default sched=0/0 handle=0xd40cb970
  | state=S schedstat=( 75594756 20403747 105 ) utm=4 stm=2 core=3 HZ=100
  | stack=0xd3fc9000-0xd3fcb000 stackSize=1038KB
  | held mutexes=
 
  #00  pc 0000000000049438  /system/lib/libc.so (__epoll_pwait+20)
 
  #01  pc 000000000001b681  /system/lib/libc.so (epoll_pwait+60)
 
  #02  pc 000000000001b6b1  /system/lib/libc.so (epoll_wait+12)
 
  #03  pc 0000000000010153  /system/lib/libutils.so (android::Looper::pollInner(int)+118)
 
  #04  pc 0000000000010045  /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+32)
 
  #05  pc 00000000000b1f41  /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, _jobject*, int)+24)
 
  #06  pc 00000000001806e5  /system/framework/arm/boot-framework.oat (Java_android_os_MessageQueue_nativePollOnce__JI+92)
 
  at android.os.MessageQueue.nativePollOnce (Native method)
 
  at android.os.MessageQueue.next (MessageQueue.java:325)
 
  at android.os.Looper.loop (Looper.java:142)
 
  at android.os.HandlerThread.run (HandlerThread.java:65)
"YMM-DW-2" tid=23 Waiting
"YMM-DW-2" prio=5 tid=23 Waiting
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12f83ec0 self=0xd461aa00
  | sysTid=24910 nice=0 cgrp=default sched=0/0 handle=0xd3fc6970
  | state=S schedstat=( 34597874 23504290 37 ) utm=2 stm=0 core=1 HZ=100
  | stack=0xd3ec4000-0xd3ec6000 stackSize=1038KB
  | held mutexes=
 
  at java.lang.Object.wait (Native method)
- waiting on <0x061973be> (a com.yandex.metrica.impl.ob.jh$a)
 
  at com.yandex.metrica.impl.ob.jh$a.run (SourceFile:84)
- locked <0x061973be> (a com.yandex.metrica.impl.ob.jh$a)
"YMM-YM-3" tid=24 Native
"YMM-YM-3" prio=5 tid=24 Native
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12f83f50 self=0xd4629800
  | sysTid=24911 nice=0 cgrp=default sched=0/0 handle=0xd3ec1970
  | state=S schedstat=( 29512876 114814831 88 ) utm=1 stm=1 core=2 HZ=100
  | stack=0xd3dbf000-0xd3dc1000 stackSize=1038KB
  | held mutexes=
 
  #00  pc 0000000000049438  /system/lib/libc.so (__epoll_pwait+20)
 
  #01  pc 000000000001b681  /system/lib/libc.so (epoll_pwait+60)
 
  #02  pc 000000000001b6b1  /system/lib/libc.so (epoll_wait+12)
 
  #03  pc 0000000000010153  /system/lib/libutils.so (android::Looper::pollInner(int)+118)
 
  #04  pc 0000000000010045  /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+32)
 
  #05  pc 00000000000b1f41  /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, _jobject*, int)+24)
 
  #06  pc 00000000001806e5  /system/framework/arm/boot-framework.oat (Java_android_os_MessageQueue_nativePollOnce__JI+92)
 
  at android.os.MessageQueue.nativePollOnce (Native method)
 
  at android.os.MessageQueue.next (MessageQueue.java:325)
 
  at android.os.Looper.loop (Looper.java:142)
 
  at android.os.HandlerThread.run (HandlerThread.java:65)
"YMM-BD-4" tid=25 Waiting
"YMM-BD-4" prio=5 tid=25 Waiting
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12f84038 self=0xd4629e00
  | sysTid=24912 nice=0 cgrp=default sched=0/0 handle=0xd3cff970
  | state=S schedstat=( 679251 1728375 2 ) utm=0 stm=0 core=1 HZ=100
  | stack=0xd3bfd000-0xd3bff000 stackSize=1038KB
  | held mutexes=
 
  at java.lang.Object.wait (Native method)
- waiting on <0x0d0e5c1f> (a java.lang.Object)
 
  at java.lang.Thread.parkFor$ (Thread.java:2137)
- locked <0x0d0e5c1f> (a java.lang.Object)
 
  at sun.misc.Unsafe.park (Unsafe.java:358)
 
  at java.util.concurrent.locks.LockSupport.park (LockSupport.java:190)
 
  at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2059)
 
  at java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:442)
 
  at com.yandex.metrica.impl.ob.cg$1.run (SourceFile:93)
 
  at java.lang.Thread.run (Thread.java:764)
"YMM-RS-5" tid=26 Native
"YMM-RS-5" prio=5 tid=26 Native
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12f84158 self=0xd462a400
  | sysTid=24913 nice=0 cgrp=default sched=0/0 handle=0xd3bfa970
  | state=S schedstat=( 100283500 68749457 129 ) utm=6 stm=4 core=1 HZ=100
  | stack=0xd3af8000-0xd3afa000 stackSize=1038KB
  | held mutexes=
 
  #00  pc 0000000000049438  /system/lib/libc.so (__epoll_pwait+20)
 
  #01  pc 000000000001b681  /system/lib/libc.so (epoll_pwait+60)
 
  #02  pc 000000000001b6b1  /system/lib/libc.so (epoll_wait+12)
 
  #03  pc 0000000000010153  /system/lib/libutils.so (android::Looper::pollInner(int)+118)
 
  #04  pc 0000000000010045  /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+32)
 
  #05  pc 00000000000b1f41  /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, _jobject*, int)+24)
 
  #06  pc 00000000001806e5  /system/framework/arm/boot-framework.oat (Java_android_os_MessageQueue_nativePollOnce__JI+92)
 
  at android.os.MessageQueue.nativePollOnce (Native method)
 
  at android.os.MessageQueue.next (MessageQueue.java:325)
 
  at android.os.Looper.loop (Looper.java:142)
 
  at android.os.HandlerThread.run (HandlerThread.java:65)
"RxSchedulerPurge-1" tid=27 TimedWaiting
"RxSchedulerPurge-1" daemon prio=5 tid=27 TimedWaiting
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12f84240 self=0xd4311600
  | sysTid=24916 nice=0 cgrp=default sched=0/0 handle=0xd39ff970
  | state=S schedstat=( 366751161 120701992 1198 ) utm=23 stm=13 core=1 HZ=100
  | stack=0xd38fd000-0xd38ff000 stackSize=1038KB
  | held mutexes=
 
  at java.lang.Object.wait (Native method)
- waiting on <0x0e28db6c> (a java.lang.Object)
 
  at java.lang.Thread.parkFor$ (Thread.java:2137)
- locked <0x0e28db6c> (a java.lang.Object)
 
  at sun.misc.Unsafe.park (Unsafe.java:358)
 
  at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:230)
 
  at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:2101)
 
  at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1132)
 
  at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1113)
 
  at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1087)
 
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1147)
 
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
 
  at java.lang.Thread.run (Thread.java:764)
"RxCachedWorkerPoolEvictor-1" tid=28 TimedWaiting
"RxCachedWorkerPoolEvictor-1" daemon prio=5 tid=28 TimedWaiting
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12f84390 self=0xd4311c00
  | sysTid=24917 nice=0 cgrp=default sched=0/0 handle=0xd38fa970
  | state=S schedstat=( 6289044 13051832 20 ) utm=0 stm=0 core=1 HZ=100
  | stack=0xd37f8000-0xd37fa000 stackSize=1038KB
  | held mutexes=
 
  at java.lang.Object.wait (Native method)
- waiting on <0x0bc88535> (a java.lang.Object)
 
  at java.lang.Thread.parkFor$ (Thread.java:2137)
- locked <0x0bc88535> (a java.lang.Object)
 
  at sun.misc.Unsafe.park (Unsafe.java:358)
 
  at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:230)
 
  at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:2101)
 
  at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1132)
 
  at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1113)
 
  at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1087)
 
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1147)
 
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
 
  at java.lang.Thread.run (Thread.java:764)
"RxComputationThreadPool-1" tid=30 Waiting
"RxComputationThreadPool-1" daemon prio=5 tid=30 Waiting
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12fc2320 self=0xd3d6e400
  | sysTid=24919 nice=0 cgrp=default sched=0/0 handle=0xd41fa970
  | state=S schedstat=( 8868376 10234751 35 ) utm=0 stm=0 core=3 HZ=100
  | stack=0xd40f8000-0xd40fa000 stackSize=1038KB
  | held mutexes=
 
  at java.lang.Object.wait (Native method)
- waiting on <0x08f50dca> (a java.lang.Object)
 
  at java.lang.Thread.parkFor$ (Thread.java:2137)
- locked <0x08f50dca> (a java.lang.Object)
 
  at sun.misc.Unsafe.park (Unsafe.java:358)
 
  at java.util.concurrent.locks.LockSupport.park (LockSupport.java:190)
 
  at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2059)
 
  at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1120)
 
  at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1113)
 
  at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1087)
 
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1147)
 
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
 
  at java.lang.Thread.run (Thread.java:764)
"RenderThread" tid=31 Native
"RenderThread" prio=5 tid=31 Native
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12fc23e0 self=0xd238e000
  | sysTid=24921 nice=-10 cgrp=default sched=0/0 handle=0xd037f970
  | state=S schedstat=( 85864179273 37341717460 114931 ) utm=6022 stm=2564 core=2 HZ=100
  | stack=0xd0285000-0xd0287000 stackSize=1006KB
  | held mutexes=
 
  #00  pc 0000000000049438  /system/lib/libc.so (__epoll_pwait+20)
 
  #01  pc 000000000001b681  /system/lib/libc.so (epoll_pwait+60)
 
  #02  pc 000000000001b6b1  /system/lib/libc.so (epoll_wait+12)
 
  #03  pc 0000000000010153  /system/lib/libutils.so (android::Looper::pollInner(int)+118)
 
  #04  pc 0000000000010045  /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+32)
 
  #05  pc 00000000000519a5  /system/lib/libhwui.so (android::uirenderer::renderthread::RenderThread::threadLoop()+424)
 
  #06  pc 000000000000d2c5  /system/lib/libutils.so (android::Thread::_threadLoop(void*)+144)
 
  #07  pc 000000000006de7d  /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+80)
 
  #08  pc 0000000000047e23  /system/lib/libc.so (__pthread_start(void*)+22)
 
  #09  pc 000000000001b287  /system/lib/libc.so (__start_thread+32)
"OkHttp ConnectionPool" tid=33 TimedWaiting
"OkHttp ConnectionPool" daemon prio=5 tid=33 TimedWaiting
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12fc25a0 self=0xd3d1e000
  | sysTid=24928 nice=0 cgrp=default sched=0/0 handle=0xd0282970
  | state=S schedstat=( 21225456 27157538 220 ) utm=1 stm=0 core=3 HZ=100
  | stack=0xd0180000-0xd0182000 stackSize=1038KB
  | held mutexes=
 
  at java.lang.Object.wait (Native method)
- waiting on <0x0ec69b3b> (a okhttp3.internal.connection.f)
 
  at okhttp3.internal.connection.f.c (RealConnectionPool.java:62)
- locked <0x0ec69b3b> (a okhttp3.internal.connection.f)
 
  at okhttp3.internal.connection.f.lambda$Oa2rZVqKG2yj8PSM94o_1E_5eE4 (RealConnectionPool.java)
 
  at okhttp3.internal.connection.-$$Lambda$f$Oa2rZVqKG2yj8PSM94o_1E_5eE4.run (lambda)
 
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
 
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
 
  at java.lang.Thread.run (Thread.java:764)
"RxComputationThreadPool-2" tid=35 Waiting
"RxComputationThreadPool-2" daemon prio=5 tid=35 Waiting
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12fc2760 self=0xd3d1f800
  | sysTid=24930 nice=0 cgrp=default sched=0/0 handle=0xcf77f970
  | state=S schedstat=( 1716376 253418 8 ) utm=0 stm=0 core=2 HZ=100
  | stack=0xcf67d000-0xcf67f000 stackSize=1038KB
  | held mutexes=
 
  at java.lang.Object.wait (Native method)
- waiting on <0x087e4258> (a java.lang.Object)
 
  at java.lang.Thread.parkFor$ (Thread.java:2137)
- locked <0x087e4258> (a java.lang.Object)
 
  at sun.misc.Unsafe.park (Unsafe.java:358)
 
  at java.util.concurrent.locks.LockSupport.park (LockSupport.java:190)
 
  at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2059)
 
  at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1120)
 
  at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1113)
 
  at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1087)
 
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1147)
 
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
 
  at java.lang.Thread.run (Thread.java:764)
"RxComputationThreadPool-3" tid=36 TimedWaiting
"RxComputationThreadPool-3" daemon prio=5 tid=36 TimedWaiting
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12fc2820 self=0xd3d1fe00
  | sysTid=24931 nice=0 cgrp=default sched=0/0 handle=0xcf67a970
  | state=S schedstat=( 23396874 5698374 91 ) utm=1 stm=0 core=1 HZ=100
  | stack=0xcf578000-0xcf57a000 stackSize=1038KB
  | held mutexes=
 
  at java.lang.Object.wait (Native method)
- waiting on <0x0e093fb1> (a java.lang.Object)
 
  at java.lang.Thread.parkFor$ (Thread.java:2137)
- locked <0x0e093fb1> (a java.lang.Object)
 
  at sun.misc.Unsafe.park (Unsafe.java:358)
 
  at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:230)
 
  at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:2101)
 
  at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1132)
 
  at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1113)
 
  at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1087)
 
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1147)
 
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
 
  at java.lang.Thread.run (Thread.java:764)
"glide-active-resources" tid=37 Waiting
"glide-active-resources" prio=5 tid=37 Waiting
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12fc29e0 self=0xd3d6c000
  | sysTid=24940 nice=10 cgrp=default sched=0/0 handle=0xce984970
  | state=S schedstat=( 3403042 11611458 9 ) utm=0 stm=0 core=2 HZ=100
  | stack=0xce882000-0xce884000 stackSize=1038KB
  | held mutexes=
 
  at java.lang.Object.wait (Native method)
- waiting on <0x07c12c04> (a java.lang.Object)
 
  at java.lang.Object.wait (Object.java:422)
 
  at java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:188)
- locked <0x07c12c04> (a java.lang.Object)
 
  at java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:209)
 
  at com.bumptech.glide.load.engine.a$2.run (ActiveResources.java:1132)
 
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
 
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
 
  at com.bumptech.glide.load.engine.a$1$1.run (ActiveResources.java:45)
 
  at java.lang.Thread.run (Thread.java:764)
"glide-disk-cache-thread-0" tid=38 Waiting
"glide-disk-cache-thread-0" prio=5 tid=38 Waiting
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12f80000 self=0xe37ba000
  | sysTid=24941 nice=9 cgrp=default sched=0/0 handle=0xce87f970
  | state=S schedstat=( 61793704499 4624180116 19909 ) utm=5922 stm=256 core=2 HZ=100
  | stack=0xce77d000-0xce77f000 stackSize=1038KB
  | held mutexes=
 
  at java.lang.Object.wait (Native method)
- waiting on <0x07c125ed> (a java.lang.Object)
 
  at java.lang.Thread.parkFor$ (Thread.java:2137)
- locked <0x07c125ed> (a java.lang.Object)
 
  at sun.misc.Unsafe.park (Unsafe.java:358)
 
  at java.util.concurrent.locks.LockSupport.park (LockSupport.java:190)
 
  at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2059)
 
  at java.util.concurrent.PriorityBlockingQueue.take (PriorityBlockingQueue.java:548)
 
  at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1087)
 
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1147)
 
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
 
  at java.lang.Thread.run (Thread.java:764)
 
  at com.bumptech.glide.load.engine.c.a$a$1.run (GlideExecutor.java:446)
"hwuiTask1" tid=39 Native
"hwuiTask1" prio=5 tid=39 Native
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12f84848 self=0xd4609e00
  | sysTid=24942 nice=-2 cgrp=default sched=0/0 handle=0xce77a970
  | state=S schedstat=( 5821372074 16500156890 23215 ) utm=342 stm=239 core=2 HZ=100
  | stack=0xce680000-0xce682000 stackSize=1006KB
  | held mutexes=
 
  #00  pc 0000000000018ce8  /system/lib/libc.so (syscall+28)
 
  #01  pc 00000000000477b9  /system/l
"Signal Catcher" tid=3 Runnable
"Signal Catcher" daemon prio=5 tid=3 Runnable
  | group="system" sCount=0 dsCount=0 flags=0 obj=0x12fc02a0 self=0xee0ccc00
  | sysTid=24879 nice=0 cgrp=default sched=0/0 handle=0xe62fe970
  | state=R schedstat=( 60046959 7330499 47 ) utm=2 stm=4 core=2 HZ=100
  | stack=0xe6204000-0xe6206000 stackSize=1006KB
  | held mutexes= "mutator lock"(shared held)
 
  #00  pc 00000000002eb857  /system/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, int, BacktraceMap*, char const*, art::ArtMethod*, void*)+130)
 
  #01  pc 000000000037ea91  /system/lib/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool, BacktraceMap*, bool) const+204)
 
  #02  pc 000000000037b01b  /system/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool, BacktraceMap*, bool) const+34)
 
  #03  pc 0000000000392f61  /system/lib/libart.so (art::DumpCheckpoint::Run(art::Thread*)+684)
 
  #04  pc 000000000038ca7f  /system/lib/libart.so (art::ThreadList::RunCheckpoint(art::Closure*, art::Closure*)+322)
 
  #05  pc 000000000038c56f  /system/lib/libart.so (art::ThreadList::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool)+542)
 
  #06  pc 000000000038c281  /system/lib/libart.so (art::ThreadList::DumpForSigQuit(std::__1::basic_ostream<char, std::__1::char_traits<char>>&)+648)
 
  #07  pc 00000000003695c3  /system/lib/libart.so (art::Runtime::DumpForSigQuit(std::__1::basic_ostream<char, std::__1::char_traits<char>>&)+122)
 
  #08  pc 0000000000370b5d  /system/lib/libart.so (art::SignalCatcher::HandleSigQuit()+1276)
 
  #09  pc 000000000036fae5  /system/lib/libart.so (art::SignalCatcher::Run(void*)+240)
 
  #10  pc 0000000000047e23  /system/lib/libc.so (__pthread_start(void*)+22)
 
  #11  pc 000000000001b287  /system/lib/libc.so (__start_thread+32)
"HeapTaskDaemon" tid=6 Blocked
"HeapTaskDaemon" daemon prio=5 tid=6 Blocked
  | group="system" sCount=1 dsCount=0 flags=1 obj=0x12fc2bd8 self=0xe3836c00
  | sysTid=24883 nice=4 cgrp=default sched=0/0 handle=0xd6872970
  | state=S schedstat=( 13475292388 2523864206 8259 ) utm=1196 stm=150 core=1 HZ=100
  | stack=0xd6770000-0xd6772000 stackSize=1038KB
  | held mutexes=
 
  #00  pc 0000000000018ce8  /system/lib/libc.so (syscall+28)
 
  #01  pc 00000000000b7889  /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+88)
 
  #02  pc 00000000001cd1dd  /system/lib/libart.so (art::gc::TaskProcessor::GetTask(art::Thread*)+284)
 
  #03  pc 00000000001cd7bd  /system/lib/libart.so (art::gc::TaskProcessor::RunAllTasks(art::Thread*)+44)
 
  #04  pc 000000000019407b  /system/framework/arm/boot-core-libart.oat (Java_dalvik_system_VMRuntime_runHeapTasks__+74)
 
  at dalvik.system.VMRuntime.runHeapTasks (Native method)
- waiting to lock an unknown object
 
  at java.lang.Daemons$HeapTaskDaemon.runInternal (Daemons.java:461)
 
  at java.lang.Daemons$Daemon.run (Daemons.java:103)
 
  at java.lang.Thread.run (Thread.java:764)

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Reactions:1
  • Comments:22 (6 by maintainers)

github_iconTop GitHub Comments

2reactions
SnailDreamcommented, Mar 12, 2020

Hi, we have the same problem! Does it can be resolved?

2reactions
krok55commented, Mar 4, 2020

Hello, I have a similar issue on ALL devices (not just Huawei). Some of them report on ANR at blockUntilDelivered. Here is a typical ANR report:

“main” prio=5 tid=1 Waiting | group=“main” sCount=1 dsCount=0 flags=1 obj=0x75794770 self=0x3073021c00 | sysTid=23917 nice=0 cgrp=default sched=0/0 handle=0x2fed5cd548 | state=S schedstat=( 10073527995 6894125827 42689 ) utm=789 stm=217 core=2 HZ=100 | stack=0x7fd1b1d000-0x7fd1b1f000 stackSize=8MB | held mutexes= at java.lang.Object.wait (Native method)

  • waiting on <0x0c5fefc8> (a com.google.android.exoplayer2.PlayerMessage) at com.google.android.exoplayer2.PlayerMessage.c (PlayerMessage.java:283)
  • locked <0x0c5fefc8> (a com.google.android.exoplayer2.PlayerMessage) at com.google.android.exoplayer2.SimpleExoPlayer.a (SimpleExoPlayer.java:1471) at com.google.android.exoplayer2.SimpleExoPlayer.a (SimpleExoPlayer.java:71) at com.google.android.exoplayer2.SimpleExoPlayer$ComponentListener.surfaceDestroyed (SimpleExoPlayer.java:1719) at android.view.SurfaceView.updateSurface (SurfaceView.java:641) at android.view.SurfaceView.onWindowVisibilityChanged (SurfaceView.java:252) at android.view.View.dispatchWindowVisibilityChanged (View.java:12868) at android.view.ViewGroup.dispatchWindowVisibilityChanged (ViewGroup.java:1553) at android.view.ViewGroup.dispatchWindowVisibilityChanged (ViewGroup.java:1553) at android.view.ViewGroup.dispatchWindowVisibilityChanged (ViewGroup.java:1553) at android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:1854) at android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1536) at android.view.ViewRootImpl$TraversalRunnable.run (ViewRootImpl.java:7502) at android.view.Choreographer$CallbackRecord.run (Choreographer.java:949) at android.view.Choreographer.doCallbacks (Choreographer.java:761) at android.view.Choreographer.doFrame (Choreographer.java:696) at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:935) at android.os.Handler.handleCallback (Handler.java:873) at android.os.Handler.dispatchMessage (Handler.java:99) at android.os.Looper.loop (Looper.java:193) at android.app.ActivityThread.main (ActivityThread.java:6720) at java.lang.reflect.Method.invoke (Native method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:858) I investigated a little bit and I think that the cause is a possible deadlock in the following scenario: I have 3 threads:

The ExoPlayer thread (the one that I used to create ExoPlayer and send control messages) Other Async thread for doing some application-specific logic The UI thread In my application I need to perform some logic on the ExoPlayer thread, since this is the only way I can access various states of the player. So, during this I may request a lock on a shared resource in my application. Now, lets assume that this lock is being held by my other ASync thread, and in the same time, I try to perform the following command on the UI thread: setVisibility(INVISIBLE) for making the video container (my custom VideoView) to disappear. This will cause the destroySurface event to be thrown on the UI thread, and then the following code in SimpleExoPlayer.java will block the UI thread:

private void setVideoSurfaceInternal(@Nullable Surface surface, boolean ownsSurface) { // Note: We don’t turn this method into a no-op if the surface is being replaced with itself // so as to ensure onRenderedFirstFrame callbacks are still called in this case. List<PlayerMessage> messages = new ArrayList<>(); for (Renderer renderer : renderers) { if (renderer.getTrackType() == C.TRACK_TYPE_VIDEO) { messages.add( player.createMessage(renderer).setType(C.MSG_SET_SURFACE).setPayload(surface).send()); } } if (this.surface != null && this.surface != surface) { // We’re replacing a surface. Block to ensure that it’s not accessed after the method returns. try { for (PlayerMessage message : messages) { message.blockUntilDelivered(); } } catch (InterruptedException e) { Thread.currentThread().interrupt(); } I assume that the dead-lock is bacause you need the ExoPlayer thread to be running, in order to activate a flow that will release the message block - but it’s blocked.

I would like to suggest to add a special case where the surface parameter is null (which is the case in my scenario), so that no messages will be sent or blocked. You don’t need to send any messages if the surface is being destroyed, right?

Thanks

Read more comments on GitHub >

github_iconTop Results From Across the Web

PlayerMessage.blockUntilDelivered - Java - Tabnine
Blocks until after the message has been delivered or the player is no longer able to deliver the message. Note that this method...
Read more >
PlayerMessage (ExoPlayer library)
com.google.android.exoplayer2.PlayerMessage ... Defines a player message which can be sent with a PlayerMessage. ... boolean, blockUntilDelivered().
Read more >
[ANR] [234587559] - Visible to Public - Issue Tracker - Google
[fist stack trace] the player's internal thread (not the app main thread) is blocked on MediaCodecUtil.getDecoderInfos(), specifically trying to create a ...
Read more >
java/imemessenger/iMe-Android/TMessagesProj/src/main ...
code examples for java/imemessenger/iMe-Android/TMessagesProj/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java.
Read more >
mozilla-central: changeset 534055 ...
Surface; +import androidx.annotation.IntDef; +import org.mozilla.thirdparty.com.google.android.exoplayer2.PlayerMessage.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found