ANR keyDispatchingTimedOut - AIR for Android - android

In an Adobe AIR application compiled for Android I am getting ANR errors with the cause keyDispatchingTimedOut. The workflow is as follows:
Sounds are playing, an embedded SWF is playing.
User presses a button - sounds/SWF stop playing
Application waits 3 seconds
Application makes some asynchronous calls to a server
Application handles the result, and pushes a new view to the viewstack.
New view appears
Between 5-10% of the time, after a few seconds, the ANR occurs.
Nothing in the error report really stands out. Any help would be massively appreciated. This is driving me crazy!
I have attached the ANR error report:
DALVIK THREADS:
(mutexes: tll=0 tsl=0 tscl=0 ghl=0)
"main" prio=5 tid=1 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x41b0d508 self=0x41afd9b0
| sysTid=17654 nice=0 sched=0/0 cgrp=apps handle=1074835248
| schedstat=( 571788091723 150929552253 787606 ) utm=48332 stm=8846 core=1
#00 pc 0000dca0 /system/lib/libc.so (__futex_syscall3+8)
#01 pc 00012e44 /system/lib/libc.so (__pthread_cond_timedwait_relative+48)
#02 pc 00012ea0 /system/lib/libc.so (__pthread_cond_timedwait+60)
#03 pc 00012f38 /system/lib/libc.so (pthread_join+108)
#04 pc 001ec1ef /data/data/air.com.gameonint.matchpoint/lib/libCore.so
at com.adobe.air.customHandler.callTimeoutFunction(Native Method)
at com.adobe.air.customHandler.handleMessage(customHandler.java:22)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4921)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
at dalvik.system.NativeStart.main(Native Method)
"Thread-3379" prio=5 tid=28 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x426bacf0 self=0x5619f470
| sysTid=21744 nice=-16 sched=0/0 cgrp=apps handle=1473838456
| schedstat=( 1340618900 149930103 2445 ) utm=119 stm=14 core=1
#00 pc 0000dca0 /system/lib/libc.so (__futex_syscall3+8)
#01 pc 00012204 /system/lib/libc.so
#02 pc 0014e913 /data/data/air.com.gameonint.matchpoint/lib/libCore.so
#03 pc 00135075 /data/data/air.com.gameonint.matchpoint/lib/libCore.so
#04 pc 001bf4a5 /data/data/air.com.gameonint.matchpoint/lib/libCore.so
at dalvik.system.NativeStart.run(Native Method)
"AudioTrack" prio=10 tid=26 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x426bac00 self=0x5630d198
| sysTid=21743 nice=-16 sched=0/0 cgrp=apps handle=1473486696
| schedstat=( 835445145 754790225 27458 ) utm=32 stm=51 core=0
#00 pc 0000d320 /system/lib/libc.so (nanosleep+12)
#01 pc 0001a9cb /system/lib/libc.so (usleep+30)
#02 pc 0004364f /system/lib/libmedia.so (android::AudioTrack::processAudioBuffer(android::sp<android::AudioTrack::AudioTrackThread> const&)+402)
#03 pc 0004370b /system/lib/libmedia.so (android::AudioTrack::AudioTrackThread::threadLoop()+70)
#04 pc 0001103b /system/lib/libutils.so (android::Thread::_threadLoop(void*)+94)
#05 pc 0004bb5b /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+66)
#06 pc 00010bb5 /system/lib/libutils.so
#07 pc 00012e00 /system/lib/libc.so (__thread_entry+48)
#08 pc 00012558 /system/lib/libc.so (pthread_create+172)
at dalvik.system.NativeStart.run(Native Method)
"Binder_4" prio=5 tid=27 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x424d0290 self=0x57549818
| sysTid=18326 nice=0 sched=0/0 cgrp=apps handle=1458138408
| schedstat=( 15464300 14467273284 378 ) utm=0 stm=1 core=1
#00 pc 0000cb90 /system/lib/libc.so (__ioctl+8)
#01 pc 00027fcd /system/lib/libc.so (ioctl+16)
#02 pc 00016bfd /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+124)
#03 pc 000173af /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+154)
#04 pc 0001b171 /system/lib/libbinder.so
#05 pc 0001104f /system/lib/libutils.so (android::Thread::_threadLoop(void*)+114)
#06 pc 0004bb5b /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+66)
#07 pc 00010bb5 /system/lib/libutils.so
#08 pc 00012e00 /system/lib/libc.so (__thread_entry+48)
#09 pc 00012558 /system/lib/libc.so (pthread_create+172)
at dalvik.system.NativeStart.run(Native Method)
"Binder_3" prio=5 tid=25 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x42679b00 self=0x53867d40
| sysTid=18156 nice=0 sched=0/0 cgrp=apps handle=1469136080
| schedstat=( 15274994 16984359588 428 ) utm=0 stm=1 core=0
#00 pc 0000cb90 /system/lib/libc.so (__ioctl+8)
#01 pc 00027fcd /system/lib/libc.so (ioctl+16)
#02 pc 00016bfd /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+124)
#03 pc 000173af /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+154)
#04 pc 0001b171 /system/lib/libbinder.so
#05 pc 0001104f /system/lib/libutils.so (android::Thread::_threadLoop(void*)+114)
#06 pc 0004bb5b /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+66)
#07 pc 00010bb5 /system/lib/libutils.so
#08 pc 00012e00 /system/lib/libc.so (__thread_entry+48)
#09 pc 00012558 /system/lib/libc.so (pthread_create+172)
at dalvik.system.NativeStart.run(Native Method)
"Thread-3133" prio=5 tid=19 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x4269cfd0 self=0x57f06bd0
| sysTid=17765 nice=0 sched=0/0 cgrp=apps handle=1457713968
| schedstat=( 229101702 17702911370 2605 ) utm=12 stm=10 core=0
#00 pc 0000da70 /system/lib/libc.so (epoll_wait+12)
#01 pc 00137079 /system/lib/libchromium_net.so
#02 pc 00136e6d /system/lib/libchromium_net.so
#03 pc 0005b0d1 /system/lib/libchromium_net.so
#04 pc 000597cf /system/lib/libchromium_net.so (MessageLoop::RunInternal()+114)
#05 pc 0005982d /system/lib/libchromium_net.so (MessageLoop::Run()+16)
#06 pc 00079ef1 /system/lib/libchromium_net.so (base::Thread::ThreadMain()+188)
#07 pc 0007997b /system/lib/libchromium_net.so
#08 pc 00012e00 /system/lib/libc.so (__thread_entry+48)
#09 pc 00012558 /system/lib/libc.so (pthread_create+172)
at dalvik.system.NativeStart.run(Native Method)
"AsyncTask #3" prio=5 tid=32 WAIT
| group="main" sCount=1 dsCount=0 obj=0x426b3e70 self=0x56e7ffa8
| sysTid=17763 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=1458082608
| schedstat=( 10809752 19933622338 363 ) utm=0 stm=0 core=1
at java.lang.Object.wait(Native Method)
- waiting on <0x426b3f90> (a java.lang.VMThread) held by tid=32 (AsyncTask #3)
at java.lang.Thread.parkFor(Thread.java:1231)
at sun.misc.Unsafe.park(Unsafe.java:323)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2022)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1009)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1069)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
"CookieSyncManager" prio=5 tid=31 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x4255f6b0 self=0x56e98d30
| sysTid=17758 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=1457721768
| schedstat=( 15950658 20119845013 333 ) utm=0 stm=1 core=1
#00 pc 0000da70 /system/lib/libc.so (epoll_wait+12)
#01 pc 00014899 /system/lib/libutils.so (android::Looper::pollInner(int)+96)
#02 pc 00014b01 /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+104)
#03 pc 000634fb /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, int)+22)
#04 pc 0001df30 /system/lib/libdvm.so (dvmPlatformInvoke+112)
#05 pc 0004d183 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+394)
#06 pc 00027360 /system/lib/libdvm.so
#07 pc 0002bc68 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+180)
#08 pc 0005f8f1 /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+272)
#09 pc 0005f91b /system/lib/libdvm.so (dvmCallMethod(Thread*, Method const*, Object*, JValue*, ...)+20)
#10 pc 000544d3 /system/lib/libdvm.so
#11 pc 00012e00 /system/lib/libc.so (__thread_entry+48)
#12 pc 00012558 /system/lib/libc.so (pthread_create+172)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:125)
at android.os.Looper.loop(Looper.java:124)
at android.webkit.WebSyncManager.run(WebSyncManager.java:92)
at android.webkit.CookieSyncManager.run(CookieSyncManager.java:58)
at java.lang.Thread.run(Thread.java:856)
"WebViewCoreThread" prio=5 tid=30 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x42684de8 self=0x56e3c548
| sysTid=17756 nice=0 sched=0/0 cgrp=apps handle=1458078976
| schedstat=( 1364349593 17478104614 14927 ) utm=109 stm=26 core=0
#00 pc 0000da70 /system/lib/libc.so (epoll_wait+12)
#01 pc 00014899 /system/lib/libutils.so (android::Looper::pollInner(int)+96)
#02 pc 00014b01 /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+104)
#03 pc 000634fb /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, int)+22)
#04 pc 0001df30 /system/lib/libdvm.so (dvmPlatformInvoke+112)
#05 pc 0004d183 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+394)
#06 pc 00000214 /dev/ashmem/dalvik-jit-code-cache (deleted)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:125)
at android.os.Looper.loop(Looper.java:124)
at android.webkit.WebViewCore$WebCoreThread.run(WebViewCore.java:1067)
at java.lang.Thread.run(Thread.java:856)
"AsyncTask #2" prio=5 tid=24 WAIT
| group="main" sCount=1 dsCount=0 obj=0x426783d8 self=0x57331568
| sysTid=17722 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=1444187536
| schedstat=( 111962004 20480411385 9839 ) utm=4 stm=7 core=1
at java.lang.Object.wait(Native Method)
- waiting on <0x426784f8> (a java.lang.VMThread) held by tid=24 (AsyncTask #2)
at java.lang.Thread.parkFor(Thread.java:1231)
at sun.misc.Unsafe.park(Unsafe.java:323)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.ja...

Related

android anr error Broadcast of Intent { act=com.google.android.c2dm.intent.RECEIVE flg=0x1000010}

i trying to fix this errors
this error occur after adding fcm 17.+.+~18.0.0
in previous version, this anr error not occur
could i know why did this error occur?
this is main thread code
p.s) i'm using navermap sdk,too
"main" prio=5 tid=1 Native
| group="main" sCount=1 dsCount=0 flags=1 obj=0x76024db0 self=0x7e75814c00
| sysTid=11665 nice=0 cgrp=default sched=0/0 handle=0x7efb8be548
| state=S schedstat=( 113364872507 54406457631 191892 ) utm=7848 stm=3488 core=2 HZ=100
| stack=0x7fd7d7f000-0x7fd7d81000 stackSize=8MB
| held mutexes=
#00 pc 000000000001f2ac /system/lib64/libc.so (syscall+28)
#01 pc 00000000000228f4 /system/lib64/libc.so (__futex_wait_ex(void volatile*, bool, int, bool, timespec const*)+140)
#02 pc 000000000009246c /system/lib64/libc.so (pthread_cond_wait+60)
#03 pc 00000000006c0734 /data/app/com.parkingbrother.parkingbrother-6hDptlHuJuICXkJB1RjLpg==/lib/arm64/libnavermap.so (std::__ndk1::condition_variable::wait(std::__ndk1::unique_lock<std::__ndk1::mutex>&)+20)
#04 pc 00000000006c15c8 /data/app/com.parkingbrother.parkingbrother-6hDptlHuJuICXkJB1RjLpg==/lib/arm64/libnavermap.so (std::__ndk1::__assoc_sub_state::wait()+84)
#05 pc 00000000004adcc0 /data/app/com.parkingbrother.parkingbrother-6hDptlHuJuICXkJB1RjLpg==/lib/arm64/libnavermap.so (???)
#06 pc 0000000000095d38 /data/app/com.parkingbrother.parkingbrother-6hDptlHuJuICXkJB1RjLpg==/lib/arm64/libnavermap.so (???)
#07 pc 0000000000095efc /data/app/com.parkingbrother.parkingbrother-6hDptlHuJuICXkJB1RjLpg==/lib/arm64/libnavermap.so (???)
#08 pc 00000000004b3a6c /data/app/com.parkingbrother.parkingbrother-6hDptlHuJuICXkJB1RjLpg==/lib/arm64/libnavermap.so (???)
#09 pc 00000000004b3b74 /data/app/com.parkingbrother.parkingbrother-6hDptlHuJuICXkJB1RjLpg==/lib/arm64/libnavermap.so (???)
#10 pc 00000000004bbeec /data/app/com.parkingbrother.parkingbrother-6hDptlHuJuICXkJB1RjLpg==/lib/arm64/libnavermap.so (???)
#11 pc 000000000000062c /data/app/com.parkingbrother.parkingbrother-6hDptlHuJuICXkJB1RjLpg==/oat/arm64/base.odex (deleted) (offset 3b000) (Java_com_naver_maps_map_NativeMapView_nativeDestroy__+124)
at com.naver.maps.map.NativeMapView.nativeDestroy (Native method)
at com.naver.maps.map.NativeMapView.d (SourceFile:119)
at com.naver.maps.map.MapView.onDestroy (SourceFile:294)
at com.naver.maps.map.MapFragment.onDestroyView (SourceFile:167)
at android.support.v4.app.Fragment.performDestroyView (Fragment.java:2678)
at android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1533)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState (FragmentManager.java:1784)
at android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1852)
at android.support.v4.app.FragmentManagerImpl.dispatchStateChange (FragmentManager.java:3269)
at android.support.v4.app.FragmentManagerImpl.dispatchDestroy (FragmentManager.java:3260)
at android.support.v4.app.FragmentController.dispatchDestroy (FragmentController.java:274)
at android.support.v4.app.FragmentActivity.onDestroy (FragmentActivity.java:419)
at android.support.v7.app.AppCompatActivity.onDestroy (AppCompatActivity.java:210)
at com.parkingbrother.parkingbrother.Main.MainActivity.Controller.MainActivity.onDestroy (MainActivity.java:92)
at android.app.Activity.performDestroy (Activity.java:7410)

EGL14.eglMakeCurrent freezes my game

I followed this tutorial in order to capture a video of my game, and it's working. I tested on several devices, and it's working. But it fails with a Nexus 7 (2012). The game freezes.
Debugging the library, I found that the call to EGL14.eglMakeCurrent in line 143 of this file is causing it.
Why EGL14.eglMakeCurrent call may block the execution?
EDIT: There is nothing in logcat when game freezes. I can only get this information from adb bugreport:
"Thread-597" prio=5 tid=76 Native
| group="main" sCount=1 dsCount=0 obj=0x12d44190 self=0x80858858
| sysTid=7984 nice=0 cgrp=apps sched=0/0 handle=0x80858d38
| state=S schedstat=( 43302000 35740000 115 ) utm=2 stm=2 core=3 HZ=100
| stack=0x80c74000-0x80c76000 stackSize=1036KB
| held mutexes=
native: #00 pc 00012444 /system/lib/libc.so (syscall+28)
native: #01 pc 0001641b /system/lib/libc.so (???)
native: #02 pc 000167b1 /system/lib/libc.so (pthread_mutex_lock+310)
native: #03 pc 00005b5c /system/lib/libnvos.so (???)
native: #04 pc 0000a7d8 /system/lib/egl/libGLESv2_tegra.so (???)
native: #05 pc 00006ee3 /system/lib/egl/libEGL_tegra.so (???)
native: #06 pc 00006f8f /system/lib/egl/libEGL_tegra.so (???)
native: #07 pc 000077db /system/lib/egl/libEGL_tegra.so (eglMakeCurrent+34)
native: #08 pc 0000ffc1 /system/lib/libEGL.so (android::egl_display_t::makeCurrent(android::egl_context_t*, android::egl_context_t*, void*, void*, void*, void*, void*, void*)+142)
native: #09 pc 000125cf /system/lib/libEGL.so (eglMakeCurrent+266)
native: #10 pc 0005fffb /system/lib/libandroid_runtime.so (???)
native: #11 pc 00271ed3 /data/dalvik-cache/arm/system#framework#boot.oat (Java_com_google_android_gles_1jni_EGLImpl_eglMakeCurrent__Ljavax_microedition_khronos_egl_EGLDisplay_2Ljavax_microedition_khronos_egl_EGLSurface_2Ljavax_microedition_khronos_egl_EGLSurface_2Ljavax_microedition_khronos_egl_EGLContext_2+178)
at com.google.android.gles_jni.EGLImpl.eglMakeCurrent(Native method)
at com.mycopmany.mypackage.androidvideocapture.SharedContext.doneCurrent(SharedContext.java:104)
at com.mycopmany.mypackage.androidvideocapture.Capturing$EncodeThread.run(Capturing.java:104)
- locked <#addr=0x12f01780> (a com.mycopmany.mypackage.androidvideocapture.VideoCapture)
"Thread-602" prio=5 tid=82 Native
| group="main" sCount=1 dsCount=0 obj=0x12dd5c50 self=0x7f2c42b0
| sysTid=6302 nice=0 cgrp=apps sched=0/0 handle=0x7f2d5020
| state=S schedstat=( 17164000 17265000 48 ) utm=0 stm=1 core=1 HZ=100
| stack=0x81402000-0x81404000 stackSize=1036KB
| held mutexes=
native: #00 pc 00012444 /system/lib/libc.so (syscall+28)
native: #01 pc 0001641b /system/lib/libc.so (???)
native: #02 pc 000167b1 /system/lib/libc.so (pthread_mutex_lock+310)
native: #03 pc 00005b5c /system/lib/libnvos.so (???)
native: #04 pc 0000b64c /system/lib/egl/libGLESv2_tegra.so (???)
native: #05 pc 00007219 /system/lib/egl/libEGL_tegra.so (???)
native: #06 pc 000077db /system/lib/egl/libEGL_tegra.so (eglMakeCurrent+34)
native: #07 pc 0000ff93 /system/lib/libEGL.so (android::egl_display_t::makeCurrent(android::egl_context_t*, android::egl_context_t*, void*, void*, void*, void*, void*, void*)+96)
native: #08 pc 000125cf /system/lib/libEGL.so (eglMakeCurrent+266)
native: #09 pc 00061845 /system/lib/libandroid_runtime.so (???)
native: #10 pc 009bf213 /data/dalvik-cache/arm/system#framework#boot.oat (Java_android_opengl_EGL14_eglMakeCurrent__Landroid_opengl_EGLDisplay_2Landroid_opengl_EGLSurface_2Landroid_opengl_EGLSurface_2Landroid_opengl_EGLContext_2+178)
at android.opengl.EGL14.eglMakeCurrent(Native method)
at org.m4m.android.InputSurface.makeCurrent(InputSurface.java:145)
at org.m4m.android.Surface.<init>(Surface.java:34)
at org.m4m.android.MediaCodecEncoderPlugin.createInputSurface(MediaCodecEncoderPlugin.java:133)
at org.m4m.domain.Encoder.getSurface(Encoder.java:34)
at org.m4m.domain.pipeline.PluginConnector$26.onSurfaceAvailable(PluginConnector.java:354)
at org.m4m.android.GameCapturerSource.setSurfaceSize(GameCapturerSource.java:52)
at org.m4m.GLCapture.setSurfaceSize(GLCapture.java:89)
at com.mycopmany.mypackage.androidvideocapture.VideoCapture.configure(VideoCapture.java:93)
at com.mycopmany.mypackage.androidvideocapture.VideoCapture.beginCaptureFrame(VideoCapture.java:104)
at com.mycopmany.mypackage.androidvideocapture.Capturing$EncodeThread.run(Capturing.java:96)
- locked <#addr=0x12db64a0> (a com.mycopmany.mypackage.androidvideocapture.VideoCapture)
Finally I found the problem. There is a bug in Tegra drivers that causes a deadlock when using shared contexts. More info:
https://devtalk.nvidia.com/default/topic/523619/opengl-es/threaded-texture-creation-under-android/
https://bugzilla.mozilla.org/show_bug.cgi?id=759225
https://devtalk.nvidia.com/default/topic/544779/opengl-es/eglmakecurrent-is-crashing-in-libnvos-so/
https://bugs.chromium.org/p/webrtc/issues/detail?id=5702

Android ANR WaitingInMainSignalCatcherLoop

I'm having a very hard time debugging an Android ANR problem.
This is what I get in logcat:
I/artīš• Thread[2,tid=29718,WaitingInMainSignalCatcherLoop,Thread*=0xaf40e400,peer=0x12c39080,"Signal Catcher"]: reacting to signal 3
Heres what I get in the traces.txt file
"Signal Catcher" daemon prio=5 tid=2 Runnable
| group="system" sCount=0 dsCount=0 obj=0x12c57080 self=0xaf40e400
| sysTid=29718 nice=0 cgrp=apps sched=0/0 handle=0xafb18d80
| state=R schedstat=( 32478966 17635623 73 ) utm=1 stm=2 core=1 HZ=100
| stack=0xb466d000-0xb466f000 stackSize=1012KB
| held mutexes= "thread list lock" "mutator lock"(exclusive held)
native: #00 pc 00004640 /system/lib/libbacktrace_libc++.so (UnwindCurrent::Unwind(unsigned int, ucontext*)+23)
native: #01 pc 00002e8d /system/lib/libbacktrace_libc++.so (Backtrace::Unwind(unsigned int, ucontext*)+8)
native: #02 pc 002453c1 /system/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int, char const*, art::mirror::ArtMethod*)+68)
native: #03 pc 00229f47 /system/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) const+146)
native: #04 pc 00232ddf /system/lib/libart.so (art::ThreadList::DumpForSigQuit(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)+142)
native: #05 pc 00218da7 /system/lib/libart.so (art::Runtime::DumpForSigQuit(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)+66)
native: #06 pc 0021ed13 /system/lib/libart.so (art::SignalCatcher::HandleSigQuit()+774)
native: #07 pc 0021f3cb /system/lib/libart.so (art::SignalCatcher::Run(void*)+322)
native: #08 pc 000137bb /system/lib/libc.so (__pthread_start(void*)+30)
native: #09 pc 0001189b /system/lib/libc.so (__start_thread+6)
(no managed stack frames)
Does anyone know what can usually cause these sorts of errors? I can't pinpoint it to any particular line of code but it does seem to happen on starting the app sometimes.
Thanks

query all contacts in ContentResolver resolved in ANR

I encountered in an annoying bug, that happens only on Nexus 4. Everytime, when I'm going through all the contacts of the device I'm getting ANR. Obviously, first thing that I did is to go through the traces.txt in order to find if there were deadlock or starvation and there weren't.
Here is how I'm using the ContentResolver:
Cursor c = cr.query(ContactsContract.Data.CONTENT_URI, PROJECTION_NAMES, WHERE_NAMES, new String[] { contact.getPhoneBookId() }, null);
Here is the top 5 threads that were registered:
JNI: CheckJNI is off; workarounds are off; pins=0; globals=480
DALVIK THREADS:
(mutexes: tll=0 tsl=0 tscl=0 ghl=0)
"main" prio=5 tid=1 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x415f0ca8 self=0x4152a408
| sysTid=25870 nice=0 sched=0/0 cgrp=apps handle=1074544980
| state=S schedstat=( 0 0 0 ) utm=1610 stm=187 core=1
#00 pc 00020588 /system/lib/libc.so (__ioctl+8)
#01 pc 0002cb37 /system/lib/libc.so (ioctl+14)
#02 pc 0001d3ed /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+140)
#03 pc 0001d8d7 /system/lib/libbinder.so (android::IPCThreadState::waitForResponse(android::Parcel*, int*)+42)
#04 pc 0001dadf /system/lib/libbinder.so (android::IPCThreadState::transact(int, unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+118)
#05 pc 00019791 /system/lib/libbinder.so (android::BpBinder::transact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+30)
#06 pc 00071121 /system/lib/libandroid_runtime.so
#07 pc 0001dbcc /system/lib/libdvm.so (dvmPlatformInvoke+112)
#08 pc 0004e123 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+398)
#09 pc 00026fe0 /system/lib/libdvm.so
#10 pc 0002dfa0 /system/lib/libdvm.so (dvmMterpStd(Thread*)+76)
#11 pc 0002b638 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
#12 pc 00060861 /system/lib/libdvm.so (dvmInvokeMethod(Object*, Method const*, ArrayObject*, ArrayObject*, ClassObject*, bool)+392)
#13 pc 000687c3 /system/lib/libdvm.so
#14 pc 00026fe0 /system/lib/libdvm.so
#15 pc 0002dfa0 /system/lib/libdvm.so (dvmMterpStd(Thread*)+76)
#16 pc 0002b638 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
#17 pc 0006057d /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+336)
#18 pc 00049d0b /system/lib/libdvm.so
#19 pc 0004d2b3 /system/lib/libandroid_runtime.so
#20 pc 0004dfd7 /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, char const*)+354)
#21 pc 0000105b /system/bin/app_process
#22 pc 0000e34b /system/lib/libc.so (__libc_init+50)
#23 pc 00000d7c /system/bin/app_process
at android.os.BinderProxy.transact(Native Method)
at android.content.ContentProviderProxy.query(ContentProviderNative.java:411)
at android.content.ContentResolver.query(ContentResolver.java:461)
at android.content.ContentResolver.query(ContentResolver.java:404)
at com.myapp.contacts.PhoneBookUtils.populateNames(PhoneBookUtils.java:346)
at com.myapp.contacts.PhoneBookUtils.getPhoneBookContact(PhoneBookUtils.java:217)
at com.myapp.contacts.PhoneBookUtils.populateLists(PhoneBookUtils.java:184)
at com.myapp.contacts.PhoneBookUtils.getPhoneBookContacts(PhoneBookUtils.java:150)
at com.myapp.contacts.PhoneBookUtils.merge(PhoneBookUtils.java:510)
at com.myapp.contacts.ContactProviderChangedService$ContactContentObserver.onChange(ContactProviderChangedService.java:80)
at android.database.ContentObserver.onChange(ContentObserver.java:129)
at android.database.ContentObserver$NotificationRunnable.run(ContentObserver.java:180)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
"pool-20-thread-3" prio=5 tid=52 WAIT
| group="main" sCount=1 dsCount=0 obj=0x421d8f58 self=0x78d52b78
| sysTid=26221 nice=0 sched=0/0 cgrp=apps handle=2001638840
| state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=1
at java.lang.Object.wait(Native Method)
- waiting on <0x4238e2b0> (a java.lang.VMThread) held by tid=52 (pool-20-thread-3)
at java.lang.Thread.parkFor(Thread.java:1205)
at sun.misc.Unsafe.park(Unsafe.java:325)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2017)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:410)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
"pool-20-thread-2" prio=5 tid=49 WAIT
| group="main" sCount=1 dsCount=0 obj=0x42510560 self=0x78d24930
| sysTid=26184 nice=0 sched=0/0 cgrp=apps handle=1991618032
| state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=1
at java.lang.Object.wait(Native Method)
- waiting on <0x4236be40> (a java.lang.VMThread) held by tid=49 (pool-20-thread-2)
at java.lang.Thread.parkFor(Thread.java:1205)
at sun.misc.Unsafe.park(Unsafe.java:325)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2017)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:410)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
"AudioTrack" prio=10 tid=51 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x423bada0 self=0x78435488
| sysTid=26106 nice=-16 sched=0/0 cgrp=apps handle=2017677888
| state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=0
#00 pc 00021904 /system/lib/libc.so (__futex_syscall3+8)
#01 pc 0000eec4 /system/lib/libc.so (__pthread_cond_timedwait_relative+48)
#02 pc 0000ef24 /system/lib/libc.so (__pthread_cond_timedwait+64)
#03 pc 00047a85 /system/lib/libmedia.so (android::AudioTrack::AudioTrackThread::threadLoop()+36)
#04 pc 0000ea5d /system/lib/libutils.so (android::Thread::_threadLoop(void*)+216)
#05 pc 0004d24d /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+68)
#06 pc 0000e58f /system/lib/libutils.so
#07 pc 0000d170 /system/lib/libc.so (__thread_entry+72)
#08 pc 0000d308 /system/lib/libc.so (pthread_create+240)
at dalvik.system.NativeStart.run(Native Method)
"pool-31-thread-1" prio=5 tid=50 WAIT
| group="main" sCount=1 dsCount=0 obj=0x4205df18 self=0x793d9f80
| sysTid=26095 nice=0 sched=0/0 cgrp=apps handle=2034082776
| state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=0
at java.lang.Object.wait(Native Method)
- waiting on <0x425a6818> (a java.lang.VMThread) held by tid=50 (pool-31-thread-1)
at java.lang.Thread.parkFor(Thread.java:1205)
at sun.misc.Unsafe.park(Unsafe.java:325)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2017)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1050)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:778)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)

Nasty ANR caused by MediaCodec.dequeInputBuffer

I have witnessed and have received reports of a rare but particularly nasty ANR in my app that causes the app to be completely useless unless it's uninstalled and reinstalled, not even Force Stopping the app (which is supposed to shutdown the entire process) can get the app out of the ANR.
I haven't been able to get anything out of the ANR reports, but this one has some useful information. It appears MediaCodec.dequeueInputBuffer is not returning. It is being given a timeout of 200000 microseconds. This is happening in a synchronized block of code off the main thread, in which all operations involving the MediaCodec and MediaExtractor objects take place. The main thread is waiting for the lock to enter a code block containing a call to MediaExtractor.seekTo().
The whole code for SoundTouchPlayable and MediaCodecAudioDecoder can bet found at https://github.com/svenoaks/SoundTouch-Android/tree/master/src/com/smp/soundtouchandroid
The lockup in the non-main thread is happening in MediaCodecAudioDecoder line 181.
I'm not really sure what, if anything, I can do about this. What can I do?
----- pid 21484 at 2014-05-01 12:50:08 -----
Cmd line: com.smp.musicspeed
JNI: CheckJNI is off; workarounds are off; pins=0; globals=336 (plus 35 weak)
DALVIK THREADS:
(mutexes: tll=0 tsl=0 tscl=0 ghl=0)
"main" prio=5 tid=1 MONITOR
| group="main" sCount=1 dsCount=0 obj=0x41656e40 self=0x41645450
| sysTid=21484 nice=-6 sched=0/0 cgrp=apps handle=1074180436
| state=S schedstat=( 0 0 0 ) utm=936 stm=126 core=0
at com.smp.soundtouchandroid.SoundTouchPlayable.seekTo(SoundTouchPlayable.java:~292)
- waiting to lock <0x422cfb18> (a java.lang.Object) held by tid=20 (Thread-157041)
at com.smp.musicspeed.SoundTouchPlayService.seekTo(SoundTouchPlayService.java:376)
at com.smp.musicspeed.MainActivity$1$1$1.run(MainActivity.java:134)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5184)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1015)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:831)
at dalvik.system.NativeStart.main(Native Method)
"Visualizer" prio=5 tid=26 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x4231ac08 self=0x6a4f1298
| sysTid=21802 nice=0 sched=0/0 cgrp=apps handle=1853423672
| state=S schedstat=( 0 0 0 ) utm=11 stm=2 core=0
#00 pc 0002114c /system/lib/libc.so (nanosleep+12)
#01 pc 0002fc17 /system/lib/libc.so (usleep+30)
#02 pc 00069fd7 /system/lib/libmedia.so (android::Visualizer::CaptureThread::threadLoop()+8)
#03 pc 0000f149 /system/lib/libutils.so (android::Thread::_threadLoop(void*)+216)
#04 pc 00050357 /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+98)
#05 pc 0000ec0f /system/lib/libutils.so
#06 pc 0000d200 /system/lib/libc.so (__thread_entry+72)
#07 pc 0000d398 /system/lib/libc.so (pthread_create+240)
at dalvik.system.NativeStart.run(Native Method)
"Thread-157041" prio=10 tid=20 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x4231dd00 self=0x6c2c0278
| sysTid=21801 nice=-8 sched=0/0 cgrp=apps handle=1825959168
| state=S schedstat=( 0 0 0 ) utm=6 stm=0 core=0
#00 pc 00021dc4 /system/lib/libc.so (__futex_syscall3+8)
#01 pc 0000ef54 /system/lib/libc.so (__pthread_cond_timedwait_relative+48)
#02 pc 0000efb4 /system/lib/libc.so (__pthread_cond_timedwait+64)
#03 pc 000098d7 /system/lib/libstagefright_foundation.so (android::ALooperRoster::postAndAwaitResponse(android::sp<android::AMessage> const&, android::sp<android::AMessage>*)+78)
#04 pc 0000a4e7 /system/lib/libstagefright_foundation.so (android::AMessage::postAndAwaitResponse(android::sp<android::AMessage>*)+26)
#05 pc 000724a3 /system/lib/libstagefright.so (android::MediaCodec::PostAndAwaitResponse(android::sp<android::AMessage> const&, android::sp<android::AMessage>*)+6)
#06 pc 00072e17 /system/lib/libstagefright.so (android::MediaCodec::dequeueInputBuffer(unsigned int*, long long)+66)
#07 pc 0001442d /system/lib/libmedia_jni.so
#08 pc 0002044c /system/lib/libdvm.so (dvmPlatformInvoke+112)
#09 pc 00054019 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+428)
#10 pc 000298e0 /system/lib/libdvm.so
#11 pc 00031840 /system/lib/libdvm.so (dvmMterpStd(Thread*)+76)
#12 pc 0002ed5c /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+232)
#13 pc 000697c5 /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+336)
#14 pc 000697e9 /system/lib/libdvm.so (dvmCallMethod(Thread*, Method const*, Object*, JValue*, ...)+20)
#15 pc 0005cc7b /system/lib/libdvm.so
#16 pc 0000d200 /system/lib/libc.so (__thread_entry+72)
#17 pc 0000d398 /system/lib/libc.so (pthread_create+240)
at android.media.MediaCodec.dequeueInputBuffer(Native Method)
at com.smp.soundtouchandroid.MediaCodecAudioDecoder.advanceInput(MediaCodecAudioDecoder.java:181)
at com.smp.soundtouchandroid.MediaCodecAudioDecoder.decodeChunk(MediaCodecAudioDecoder.java:125)
at com.smp.soundtouchandroid.SoundTouchPlayable.playFile(SoundTouchPlayable.java:373)
at com.smp.soundtouchandroid.SoundTouchPlayable.run(SoundTouchPlayable.java:228)
at java.lang.Thread.run(Thread.java:856)
"AudioTrack" prio=10 tid=19 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x4231dc40 self=0x6a699228
| sysTid=21800 nice=-16 sched=0/0 cgrp=apps handle=1785696352
| state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=0
#00 pc 00021dc8 /system/lib/libc.so (__futex_syscall3+12)
#01 pc 0000ef54 /system/lib/libc.so (__pthread_cond_timedwait_relative+48)
#02 pc 000482b5 /system/lib/libmedia.so (android::AudioTrack::AudioTrackThread::threadLoop()+116)
#03 pc 0000f0d9 /system/lib/libutils.so (android::Thread::_threadLoop(void*)+104)
#04 pc 00050357 /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+98)
#05 pc 0000ec0f /system/lib/libutils.so
#06 pc 0000d200 /system/lib/libc.so (__thread_entry+72)
#07 pc 0000d398 /system/lib/libc.so (pthread_create+240)
at dalvik.system.NativeStart.run(Native Method)
"OMXCallbackDisp" prio=6 tid=18 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x422ca468 self=0x6ef90ef0
| sysTid=21799 nice=-2 sched=0/0 cgrp=apps handle=1851258128
| state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=0
#00 pc 00021dc4 /system/lib/libc.so (__futex_syscall3+8)
#01 pc 0000ef54 /system/lib/libc.so (__pthread_cond_timedwait_relative+48)
#02 pc 0000efb4 /system/lib/libc.so (__pthread_cond_timedwait+64)
#03 pc 0000e719 /system/lib/libstagefright_omx.so (android::OMX::CallbackDispatcher::loop()+40)
#04 pc 0000f149 /system/lib/libutils.so (android::Thread::_threadLoop(void*)+216)
#05 pc 00050357 /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+98)
#06 pc 0000ec0f /system/lib/libutils.so
#07 pc 0000d200 /system/lib/libc.so (__thread_entry+72)
#08 pc 0000d398 /system/lib/libc.so (pthread_create+240)
at dalvik.system.NativeStart.run(Native Method)
"ModernAsyncTask #2" prio=5 tid=25 WAIT
| group="main" sCount=1 dsCount=0 obj=0x4244ea50 self=0x6671ffb0
| sysTid=21756 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=1787397960
| state=S schedstat=( 0 0 0 ) utm=0 stm=1 core=3
at java.lang.Object.wait(Native Method)
- waiting on <0x42316088> (a java.lang.VMThread) held by tid=25 (ModernAsyncTask #2)
at java.lang.Thread.parkFor(Thread.java:1220)
at sun.misc.Unsafe.park(Unsafe.java:325)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2017)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:410)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:856)
"JavaBridge" prio=5 tid=24 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x41fb6ae8 self=0x6df54688
| sysTid=21744 nice=0 sched=0/0 cgrp=apps handle=1837055584
| state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=3
#00 pc 00021a04 /system/lib/libc.so (epoll_wait+12)
#01 pc 00010e1f /system/lib/libutils.so (android::Looper::pollInner(int)+98)
#02 pc 000110c9 /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+92)
#03 pc 0006e609 /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, int)+22)
#04 pc 0002044c /system/lib/libdvm.so (dvmPlatformInvoke+112)
#05 pc 00054019 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+428)
#06 pc 000298e0 /system/lib/libdvm.so
#07 pc 00031840 /system/lib/libdvm.so (dvmMterpStd(Thread*)+76)
#08 pc 0002ed5c /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+232)
#09 pc 000697c5 /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+336)
#10 pc 000697e9 /system/lib/libdvm.so (dvmCallMethod(Thread*, Method const*, Object*, JValue*, ...)+20)
#11 pc 0005cc7b /system/lib/libdvm.so
#12 pc 0000d200 /system/lib/libc.so (__thread_entry+72)
#13 pc 0000d398 /system/lib/libc.so (pthread_create+240)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:148)
at android.os.Looper.loop(Looper.java:123)
at android.os.HandlerThread.run(HandlerThread.java:61)
"PowerManagerThread" prio=5 tid=23 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x42340140 self=0x6df63ef0
| sysTid=21742 nice=0 sched=0/0 cgrp=apps handle=1785189064
| state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=3
#00 pc 00021a04 /system/lib/libc.so (epoll_wait+12)
#01 pc 00010e1f /system/lib/libutils.so (android::Looper::pollInner(int)+98)
#02 pc 000110c9 /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+92)
#03 pc 0006e609 /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, int)+22)
#04 pc 0002044c /system/lib/libdvm.so (dvmPlatformInvoke+112)
#05 pc 00054019 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+428)
#06 pc 000298e0 /system/lib/libdvm.so
#07 pc 00031840 /system/lib/libdvm.so (dvmMterpStd(Thread*)+76)
#08 pc 0002ed5c /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+232)
#09 pc 000697c5 /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+336)
#10 pc 000697e9 /system/lib/libdvm.so (dvmCallMethod(Thread*, Method const*, Object*, JValue*, ...)+20)
#11 pc 0005cc7b /system/lib/libdvm.so
#12 pc 0000d200 /system/lib/libc.so (__thread_entry+72)
#13 pc 0000d398 /system/lib/libc.so (pthread_create+240)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:148)
at android.os.Looper.loop(Looper.java:123)
at android.os.HandlerThread.run(HandlerThread.java:61)
"ModernAsyncTask #1" prio=5 tid=22 WAIT
| group="main" sCount=1 dsCount=0 obj=0x42330dc8 self=0x6d7d36f0
| sysTid=21741 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=1718732032
| state=S schedstat=( 0 0 0 ) utm=1 stm=0 core=3
at java.lang.Object.wait(Native Method)
- waiting on <0x4234d908> (a java.lang.VMThread) held by tid=22 (ModernAsyncTask #1)
at java.lang.Thread.parkFor(Thread.java:1220)
at sun.misc.Unsafe.park(Unsafe.java:325)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2017)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:410)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:856)
"FileObserver" prio=5 tid=16 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x42352798 self=0x6ef902b0
| sysTid=21740 nice=0 sched=0/0 cgrp=apps handle=1853392264
| state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=0
#00 pc 00020590 /system/lib/libc.so (read+12)
#01 pc 0008ac23 /system/lib/libandroid_runtime.so
#02 pc 0002044c /system/lib/libdvm.so (dvmPlatformInvoke+112)
#03 pc 00054019 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+428)
#04 pc 000298e0 /system/lib/libdvm.so
#05 pc 00031840 /system/lib/libdvm.so (dvmMterpStd(Thread*)+76)
#06 pc 0002ed5c /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+232)
#07 pc 000697c5 /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+336)
#08 pc 000697e9 /system/lib/libdvm.so (dvmCallMethod(Thread*, Method const*, Object*, JValue*, ...)+20)
#09 pc 0005cc7b /system/lib/libdvm.so
#10 pc 0000d200 /system/lib/libc.so (__thread_entry+72)
#11 pc 0000d398 /system/lib/libc.so (pthread_create+240)
at android.os.FileObserver$ObserverThread.observe(Native Method)
at android.os.FileObserver$ObserverThread.run(FileObserver.java:88)
"Thread-157029" prio=4 tid=21 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x424de938 self=0x6a9451e8
| sysTid=21666 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=1786046376
| state=S schedstat=( 0 0 0 ) utm=1 stm=0 core=3
#00 pc 00021dc4 /system/lib/libc.so (__futex_syscall3+8)
#01 pc 0000ef54 /system/lib/libc.so (__pthread_cond_timedwait_relative+48)
#02 pc 0000efb4 /system/lib/libc.so (__pthread_cond_timedwait+64)
#03 pc 00b4fd31 /system/lib/libwebviewchromium.so
#04 pc 001dbcdf /system/lib/libwebviewchromium.so
#05 pc 001dbf2b /system/lib/libwebviewchromium.so
#06 pc 001da16b /system/lib/libwebviewchromium.so
#07 pc 0000d200 /system/lib/libc.so (__thread_entry+72)
#08 pc 0000d398 /system/lib/libc.so (pthread_create+240)
at dalvik.system.NativeStart.run(Native Method)
"OkHttp ConnectionPool" daemon prio=5 tid=17 TIMED_WAIT
| group="main" sCount=1 dsCount=0 obj=0x42336c90 self=0x6a6f81d8
| sysTid=21533 nice=0 sched=0/0 cgrp=apps handle=1785691240
| state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=3
at java.lang.Object.wait(Native Method)
- waiting on <0x42336d68> (a java.lang.VMThread) held by tid=17 (OkHttp ConnectionPool)
at java.lang.Thread.parkFor(Thread.java:1220)
at sun.misc.Unsafe.park(Unsafe.java:325)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:197)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2056)
at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:435)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:856)
"Thread-157021" prio=5 tid=15 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x422cfe58 self=0x6a8afb18
| sysTid=21516 nice=0 sched=0/0 cgrp=apps handle=1783564672
| state=S schedstat=( 0 0 0 ) utm=47 stm=6 core=0
#00 pc 00021dc8 /system/lib/libc.so (__futex_syscall3+12)
#01 pc 0000ef54 /system/lib/libc.so (__pthread_cond_timedwait_relative+48)
#02 pc 0000efb4 /system/lib/libc.so (__pthread_cond_timedwait+64)
#03 pc 001e52d7 /system/lib/libwebviewchromium.so
#04 pc 001d97cd /system/lib/libwebviewchromium.so
#05 pc 001cff3f /system/lib/libwebviewchromium.so
#06 pc 001cf485 /system/lib/libwebviewchromium.so
#07 pc 001d3f4f /system/lib/libwebviewchromium.so
#08 pc 001cecbf /system/lib/libwebviewchromium.so
#09 pc 001dc33d /system/lib/libwebviewchromium.so
#10 pc 001da16b /system/lib/libwebviewchromium.so
#11 pc 0000d200 /system/lib/libc.so (__thread_entry+72)
#12 pc 0000d398 /system/lib/libc.so (pthread_create+240)
at dalvik.system.NativeStart.run(Native Method)
"AdWorker #2" prio=5 tid=14 TIMED_WAIT
| group="main" sCount=1 dsCount=0 obj=0x422e3f48 self=0x6a6b8988
| sysTid=21513 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=1784930528
| state=S schedstat=( 0 0 0 ) utm=6 stm=0 core=3
at java.lang.Object.wait(Native Method)
- waiting on <0x41fc9458> (a java.lang.VMThread) held by tid=14 (AdWorker #2)
at java.lang.Thread.parkFor(Thread.java:1220)
at sun.misc.Unsafe.park(Unsafe.java:325)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:197)
at java.util.concurrent.SynchronousQueue$TransferQueue.awaitFulfill(SynchronousQueue.java:733)
at java.util.concurrent.SynchronousQueue$TransferQueue.transfer(SynchronousQueue.java:664)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:910)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:856)
"AdWorker #1" prio=5 tid=13 TIMED_WAIT
| group="main" sCount=1 dsCount=0 obj=0x42335668 self=0x6c0cec20
| sysTid=21511 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=1812787320
| state=S schedstat=( 0 0 0 ) utm=2 stm=0 core=3
at java.lang.Object.wait(Native Method)
- waiting on <0x42335808> (a java.lang.VMThread) held by tid=13 (AdWorker #1)
at java.lang.Thread.parkFor(Thread.java:1220)
at sun.misc.Unsafe.park(Unsafe.java:325)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:197)
at java.util.concurrent.SynchronousQueue$TransferQueue.awaitFulfill(SynchronousQueue.java:733)
at java.util.concurrent.SynchronousQueue$TransferQueue.transfer(SynchronousQueue.java:664)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:910)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:856)
"CleanupReference" daemon prio=5 tid=12 WAIT
| group="main" sCount=1 dsCount=0 obj=0x4232b618 self=0x6c2bf8e0
| sysTid=21510 nice=0 sched=0/0 cgrp=apps handle=1814822200
| state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=0
at java.lang.Object.wait(Native Method)
- waiting on <0x4232b550> (a java.lang.ref.ReferenceQueue)
at java.lang.Object.wait(Object.java:401)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:102)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:73)
at com.android.org.chromium.content.common.CleanupReference$1.run(CleanupReference.java:48)
"Thread-157017" prio=5 tid=11 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x423293a0 self=0x6c2b38e0
| sysTid=21499 nice=0 sched=0/0 cgrp=apps handle=1782253760
| state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=2
#00 pc 00021dc4 /system/lib/libc.so (__futex_syscall3+8)
#01 pc 0000ef54 /system/lib/libc.so (__pthread_cond_timedwait_relative+48)
#02 pc 0000efb4 /system/lib/libc.so (__pthread_cond_timedwait+64)
#03 pc 001d97d5 /system/lib/libwebviewchromium.so
#04 pc 001d97f5 /system/lib/libwebviewchromium.so
#05 pc 001cff0f /system/lib/libwebviewchromium.so
#06 pc 001cf485 /system/lib/libwebviewchromium.so
#07 pc 001d3f4f /system/lib/libwebviewchromium.so
#08 pc 001cecbf /system/lib/libwebviewchromium.so
#09 pc 008e9893 /system/lib/libwebviewchromium.so
#10 pc 008e9c8b /system/lib/libwebviewchromium.so
#11 pc 001dc33d /system/lib/libwebviewchromium.so
#12 pc 001da16b /system/lib/libwebviewchromium.so
#13 pc 0000d200 /system/lib/libc.so (__thread_entry+72)
#14 pc 0000d398 /system/lib/libc.so (pthread_create+240)
at dalvik.system.NativeStart.run(Native Method)
"Thread-157015" prio=5 tid=10 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x42325e00 self=0x6a42b578
| sysTid=21504 nice=-6 sched=0/0 cgrp=apps handle=1782737400
| state=S schedstat=( 0 0 0 ) utm=18 stm=10 core=0
#00 pc 00021a04 /system/lib/libc.so (epoll_wait+12)
#01 pc 001e7ff3 /system/lib/libwebviewchromium.so
#02 pc 001e71e5 /system/lib/libwebviewchromium.so
#03 pc 001e010f /system/lib/libwebviewchromium.so
#04 pc 001cf485 /system/lib/libwebviewchromium.so
#05 pc 001d3f4f /system/lib/libwebviewchromium.so
#06 pc 001cecbf /system/lib/libwebviewchromium.so
#07 pc 008e9901 /system/lib/libwebviewchromium.so
#08 pc 008e9cb3 /system/lib/libwebviewchromium.so
#09 pc 001dc33d /system/lib/libwebviewchromium.so
#10 pc 001da16b /system/lib/libwebviewchromium.so
#11 pc 0000d200 /system/lib/libc.so (__thread_entry+72)
#12 pc 0000d398 /system/lib/libc.so (pthread_create+240)
at dalvik.system.NativeStart.run(Native Method)
"Binder_2" prio=5 tid=9 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x41b878e8 self=0x6659d530
| sysTid=21495 nice=0 sched=0/0 cgrp=apps handle=1717162728
| state=S schedstat=( 0 0 0 ) utm=1 stm=0 core=0
#00 pc 00020850 /system/lib/libc.so (__ioctl+8)
#01 pc 0002d187 /system/lib/libc.so (ioctl+14)
#02 pc 0001d561 /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+140)
#03 pc 0001dc6b /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+6)
#04 pc 0001dd01 /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+48)
#05 pc 00022019 /system/lib/libbinder.so
#06 pc 0000f149 /system/lib/libutils.so (android::Thread::_threadLoop(void*)+216)
#07 pc 00050357 /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+98)
#08 pc 0000ec0f /system/lib/libutils.so
#09 pc 0000d200 /system/lib/libc.so (__thread_entry+72)
#10 pc 0000d398 /system/lib/libc.so (pthread_create+240)
at dalvik.system.NativeStart.run(Native Method)
"Binder_1" prio=5 tid=8 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x41b87748 self=0x6659c8b0
| sysTid=21494 nice=0 sched=0/0 cgrp=apps handle=1717159528
| state=S schedstat=( 0 0 0 ) utm=1 stm=0 core=0
#00 pc 00020850 /system/lib/libc.so (__ioctl+8)
#01 pc 0002d187 /system/lib/libc.so (ioctl+14)
#02 pc 0001d561 /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+140)
#03 pc 0001dc6b /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+6)
#04 pc 0001dd01 /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+48)
#05 pc 00022019 /system/lib/libbinder.so
#06 pc 0000f149 /system/lib/libutils.so (android::Thread::_threadLoop(void*)+216)
#07 pc 00050357 /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+98)
#08 pc 0000ec0f /system/lib/libutils.so
#09 pc 0000d200 /system/lib/libc.so (__thread_entry+72)
#10 pc 0000d398 /system/lib/libc.so (pthread_create+240)
at dalvik.system.NativeStart.run(Native Method)
"FinalizerWatchdogDaemon" daemon prio=5 tid=7 WAIT
| group="system" sCount=1 dsCount=0 obj=0x41b830e8 self=0x6659bbc8
| sysTid=21493 nice=0 sched=0/0 cgrp=apps handle=1717157920
| state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=0
at java.lang.Object.wait(Native Method)
- waiting on <0x41660478> (a java.lang.Daemons$FinalizerWatchdogDaemon)
at java.lang.Object.wait(Object.java:364)
at java.lang.Daemons$FinalizerWatchdogDaemon.waitForObject(Daemons.java:230)
at java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:207)
at java.lang.Thread.run(Thread.java:856)
"FinalizerDaemon" daemon prio=5 tid=6 WAIT
| group="system" sCount=1 dsCount=0 obj=0x41b82f90 self=0x6659a768
| sysTid=21492 nice=0 sched=0/0 cgrp=apps handle=1717152704
| state=S schedstat=( 0 0 0 ) utm=1 stm=0 core=0
at java.lang.Object.wait(Native Method)
- waiting on <0x4164b7d8> (a java.lang.ref.ReferenceQueue)
at java.lang.Object.wait(Object.java:401)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:102)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:73)
at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:170)
at java.lang.Thread.run(Thread.java:856)
"ReferenceQueueDaemon" daemon prio=5 tid=5 WAIT
| group="system" sCount=1 dsCount=0 obj=0x41b82e28 self=0x66599ec0
| sysTid=21491 nice=0 sched=0/0 cgrp=apps handle=1717150488
| state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=3
at java.lang.Object.wait(Native Method)
- waiting on <0x4164b700>
at java.lang.Object.wait(Object.java:364)
at java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:130)
at java.lang.Thread.run(Thread.java:856)
"Compiler" daemon prio=5 tid=4 VMWAIT
| group="system" sCount=1 dsCount=0 obj=0x41b82d38 self=0x415b4258
| sysTid=21490 nice=0 sched=0/0 cgrp=apps handle=1096499216
| state=S schedstat=( 0 0 0 ) utm=11 stm=9 core=0
#00 pc 00021dc4 /system/lib/libc.so (__futex_syscall3+8)
#01 pc 0000ef54 /system/lib/libc.so (__pthread_cond_timedwait_relative+48)
#02 pc 0000efb4 /system/lib/libc.so (__pthread_cond_timedwait+64)
#03 pc 00080937 /system/lib/libdvm.so
#04 pc 0005c0fd /system/lib/libdvm.so
#05 pc 0000d200 /system/lib/libc.so (__thread_entry+72)
#06 pc 0000d398 /system/lib/libc.so (pthread_create+240)
at dalvik.system.NativeStart.run(Native Method)
"Signal Catcher" daemon prio=5 tid=3 RUNNABLE
| group="system" sCount=0 dsCount=0 obj=0x41b82c40 self=0x648b9120
| sysTid=21489 nice=0 sched=0/0 cgrp=apps handle=1772267456
| state=R schedstat=( 0 0 0 ) utm=2 stm=2 core=3
at dalvik.system.NativeStart.run(Native Method)
"GC" daemon prio=5 tid=2 VMWAIT
| group="system" sCount=1 dsCount=0 obj=0x41b82b60 self=0x648bc070
| sysTid=21488 nice=0 sched=0/0 cgrp=apps handle=1686879040
| state=S schedstat=( 0 0 0 ) utm=2 stm=0 core=0
#00 pc 00021dc4 /system/lib/libc.so (__futex_syscall3+8)
#01 pc 0000ef54 /system/lib/libc.so (__pthread_cond_timedwait_relative+48)
#02 pc 0000efb4 /system/lib/libc.so (__pthread_cond_timedwait+64)
#03 pc 0007eff3 /system/lib/libdvm.so
#04 pc 0005c0fd /system/lib/libdvm.so
#05 pc 0000d200 /system/lib/libc.so (__thread_entry+72)
#06 pc 0000d398 /system/lib/libc.so (pthread_create+240)
at dalvik.system.NativeStart.run(Native Method)
NATIVE THREADS:
".smp.musicspeed" sysTid=21498 nice=0 sched=0/0 cgrp=apps
| state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=2
".smp.musicspeed" sysTid=21500 nice=0 sched=0/0 cgrp=apps
| state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=2
".smp.musicspeed" sysTid=21501 nice=0 sched=0/0 cgrp=apps
| state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=2
".smp.musicspeed" sysTid=21502 nice=0 sched=0/0 cgrp=apps
| state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=2
".smp.musicspeed" sysTid=21503 nice=0 sched=0/0 cgrp=apps
| state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=0
".smp.musicspeed" sysTid=21505 nice=0 sched=0/0 cgrp=apps
| state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=3
".smp.musicspeed" sysTid=21506 nice=0 sched=0/0 cgrp=apps
| state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=3
".smp.musicspeed" sysTid=21507 nice=0 sched=0/0 cgrp=apps
| state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=3
".smp.musicspeed" sysTid=21508 nice=0 sched=0/0 cgrp=apps
| state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=3
".smp.musicspeed" sysTid=21517 nice=-6 sched=0/0 cgrp=apps
| state=S schedstat=( 0 0 0 ) utm=1 stm=1 core=0
EDIT 1:
ANRs are triggered by either of the following conditions.
No response to an input event (such as key press or screen touch events) within 5 seconds.
A BroadcastReceiver hasn't finished executing within 10 seconds.
Since your timeout is set to a sub-second value, it's not likely to be the direct source of your problem. The problem is more likely to be a result of the synchronization blocks. If you have code running on the main thread that's being delayed due to thread synchronization, that could easily trigger one of the ANR conditions.
I'll take a look at your actual code a bit later tonight if nobody else has already determined the problem.
EDIT 2:
Looking at the ANR dump in the question and the code, the issue appears to be caused by lock-contention on decodeLock when trying to do a seek. The thread holding the lock is a native thread gotten to by the path SoundTouchPlayable.run()->SoundTouchPlayable.playFile()->MediaCodecAudioDecoder.decodeChunk()->MediaCodecAudioDecoder.advanceInput().
To arrive at that, I looked for "waiting" in the ANR dump. Those that are on Object.wait aren't a problem; they're just waiting for more messages. The only one that's different is waiting to lock <0x422cfb18> (a java.lang.Object) held by tid=20. Then it's just a matter of looking to see which threads has tid=20.
I suggest determining how/why those two different threads could be running at the same time. Then working out a plan to keep them from do so or if it's OK that they run at the same time, changing the synchronization locks to allow it.
To address the fact that you have to do an uninstall to recover, consider that a simple force-stop might be leaving some process running. An uninstall will be more aggressive about finding and killing all processes running under that user id (each app has its own).

Categories

Resources