android - ANR in a IntentService. -
i anr reported our app users. not able reproduce on our phones.
report in google play says following.
executing service com.myapp/.background.myintentservice (no location available)
following code inside myintentservice.
public class myintentservice extends intentservice { public myintentservice() { super(myintentservice.class.getname()); } @override protected void onhandleintent(intent intent) { systemclock.sleep(100); intent intent2 = new intent(this, homeactivity.class); intent2.setflags(intent.flag_activity_new_task| intent.flag_activity_no_animation| intent.flag_activity_no_history); startactivity(intent2); } }
above intent service called @ time when open app mine cleanup notification raised app. after 100ms wanted open app back. see no issues end. following anr received users's phone. how can decode info? can point out code path?
executing service com.myapp/.background.myintentservice (no location available) "main" prio=5 tid=1 waiting | group="main" scount=1 dscount=0 obj=0x74aeda80 self=0xb4827800 | systid=17309 nice=-4 cgrp=default sched=0/0 handle=0xb6fb4bec | state=s schedstat=( 0 0 0 ) utm=164 stm=73 core=3 hz=100 | stack=0xbe5e4000-0xbe5e6000 stacksize=8mb | held mutexes= @ java.lang.object.wait! (native method) - waiting on <0x2e30cd13> (a java.lang.object) @ java.lang.thread.parkfor (thread.java:1220) - locked <0x2e30cd13> (a java.lang.object) @ sun.misc.unsafe.park (unsafe.java:299) @ java.util.concurrent.locks.locksupport.park (locksupport.java:157) @ java.util.concurrent.locks.abstractqueuedsynchronizer.parkandcheckinterrupt (abstractqueuedsynchronizer.java:813) @ java.util.concurrent.locks.abstractqueuedsynchronizer.doacquiresharedinterruptibly (abstractqueuedsynchronizer.java:973) @ java.util.concurrent.locks.abstractqueuedsynchronizer.acquiresharedinterruptibly (abstractqueuedsynchronizer.java:1281) @ java.util.concurrent.countdownlatch.await (countdownlatch.java:202) @ android.app.sharedpreferencesimpl$editorimpl$1.run (sharedpreferencesimpl.java:365) @ android.app.queuedwork.waittofinish (queuedwork.java:88) @ android.app.activitythread.handleserviceargs (activitythread.java:2943) @ android.app.activitythread.access$2100 (activitythread.java:154) @ android.app.activitythread$h.handlemessage (activitythread.java:1414) @ android.os.handler.dispatchmessage (handler.java:102) @ android.os.looper.loop (looper.java:135) @ android.app.activitythread.main (activitythread.java:5357) @ java.lang.reflect.method.invoke! (native method) @ java.lang.reflect.method.invoke (method.java:372) @ com.android.internal.os.zygoteinit$methodandargscaller.run (zygoteinit.java:952) @ com.android.internal.os.zygoteinit.main (zygoteinit.java:747) "heap thread pool worker thread 0" tid=2 native "heap thread pool worker thread 0" prio=5 tid=2 native (still starting up) | group="" scount=1 dscount=0 obj=0x0 self=0xafd4b400 | systid=17315 nice=0 cgrp=default sched=0/0 handle=0xb4918580 | state=s schedstat=( 0 0 0 ) utm=0 stm=0 core=3 hz=100 | stack=0xb4219000-0xb421b000 stacksize=1020kb | held mutexes= native: pc 00000000000133cc /system/lib/libc.so (syscall+28) native: pc 00000000000a9a83 /system/lib/libart.so (art::conditionvariable::wait(art::thread*)+82) native: pc 0000000000231b07 /system/lib/libart.so (art::threadpool::gettask(art::thread*)+50) native: pc 0000000000231aaf /system/lib/libart.so (art::threadpoolworker::run()+54) native: pc 00000000002322ed /system/lib/libart.so (art::threadpoolworker::callback(void*)+52) native: pc 0000000000016eff /system/lib/libc.so (__pthread_start(void*)+30) native: pc 0000000000014f33 /system/lib/libc.so (__start_thread+6) "heap thread pool worker thread 1" tid=3 native "heap thread pool worker thread 1" prio=5 tid=3 native (still starting up) | group="" scount=1 dscount=0 obj=0x0 self=0xb4827c00 | systid=17316 nice=0 cgrp=default sched=0/0 handle=0xb4918800 | state=s schedstat=( 0 0 0 ) utm=0 stm=0 core=3 hz=100 | stack=0xb4119000-0xb411b000 stacksize=1020kb | held mutexes= native: pc 00000000000133cc /system/lib/libc.so (syscall+28) native: pc 00000000000a9a83 /system/lib/libart.so (art::conditionvariable::wait(art::thread*)+82) native: pc 0000000000231b07 /system/lib/libart.so (art::threadpool::gettask(art::thread*)+50) native: pc 0000000000231aaf /system/lib/libart.so (art::threadpoolworker::run()+54) native: pc 00000000002322ed /system/lib/libart.so (art::threadpoolworker::callback(void*)+52) native: pc 0000000000016eff /system/lib/libc.so (__pthread_start(void*)+30) native: pc 0000000000014f33 /system/lib/libc.so (__start_thread+6) "heap thread pool worker thread 2" tid=4 native "heap thread pool worker thread 2" prio=5 tid=4 native (still starting up) | group="" scount=1 dscount=0 obj=0x0 self=0xafd4c400 | systid=17317 nice=0 cgrp=default sched=0/0 handle=0xb4918080 | state=s schedstat=( 0 0 0 ) utm=0 stm=0 core=1 hz=100 | stack=0xb4019000-0xb401b000 stacksize=1020kb | held mutexes= native: pc 00000000000133cc /system/lib/libc.so (syscall+28) native: pc 00000000000a9a83 /system/lib/libart.so (art::conditionvariable::wait(art::thread*)+82) native: pc 0000000000231b07 /system/lib/libart.so (art::threadpool::gettask(art::thread*)+50) native: pc 0000000000231aaf /system/lib/libart.so (art::threadpoolworker::run()+54) native: pc 00000000002322ed /system/lib/libart.so (art::threadpoolworker::callback(void*)+52) native: pc 0000000000016eff /system/lib/libc.so (__pthread_start(void*)+30) native: pc 0000000000014f33 /system/lib/libc.so (__start_thread+6) "referencequeuedaemon" tid=6 waiting "referencequeuedaemon" daemon prio=5 tid=6 waiting | group="system" scount=1 dscount=0 obj=0x12c742e0 self=0xb4a2bc00 | systid=17319 nice=0 cgrp=default sched=0/0 handle=0xb4918a80 | state=s schedstat=( 0 0 0 ) utm=6 stm=3 core=1 hz=100 | stack=0xb3e17000-0xb3e19000 stacksize=1036kb | held mutexes= @ java.lang.object.wait! (native method) - waiting on <0x38f54b50> (a java.lang.class<java.lang.ref.referencequeue>) @ java.lang.daemons$referencequeuedaemon.run (daemons.java:134) - locked <0x38f54b50> (a java.lang.class<java.lang.ref.referencequeue>) @ java.lang.thread.run (thread.java:818) "gcdaemon" tid=7 waiting "gcdaemon" daemon prio=5 tid=7 waiting | group="system" scount=1 dscount=0 obj=0x12c74460 self=0xb4a2d800 | systid=17323 nice=0 cgrp=default sched=0/0 handle=0xb491a880 | state=s schedstat=( 0 0 0 ) utm=65 stm=11 core=2 hz=100 | stack=0xa4f9c000-0xa4f9e000 stacksize=1036kb | held mutexes= @ java.lang.object.wait! (native method) - waiting on <0x0d43a149> (a java.lang.daemons$gcdaemon) @ java.lang.daemons$gcdaemon.run (daemons.java:344) - locked <0x0d43a149> (a java.lang.daemons$gcdaemon) @ java.lang.thread.run (thread.java:818) "heaptrimmerdaemon" tid=8 waiting "heaptrimmerdaemon" daemon prio=5 tid=8 waiting | group="system" scount=1 dscount=0 obj=0x12c74400 self=0xb4a2d400 | systid=17322 nice=0 cgrp=default sched=0/0 handle=0xb4919200 | state=s schedstat=( 0 0 0 ) utm=0 stm=1 core=1 hz=100 | stack=0xa50a0000-0xa50a2000 stacksize=1036kb | held mutexes= @ java.lang.object.wait! (native method) - waiting on <0x08661a4e> (a java.lang.daemons$heaptrimmerdaemon) @ java.lang.daemons$heaptrimmerdaemon.run (daemons.java:311) - locked <0x08661a4e> (a java.lang.daemons$heaptrimmerdaemon) @ java.lang.thread.run (thread.java:818) "finalizerwatchdogdaemon" tid=9 waiting "finalizerwatchdogdaemon" daemon prio=5 tid=9 waiting | group="system" scount=1 dscount=0 obj=0x12c743a0 self=0xb4a2c400 | systid=17321 nice=0 cgrp=default sched=0/0 handle=0xb4918f80 | state=s schedstat=( 0 0 0 ) utm=0 stm=0 core=0 hz=100 | stack=0xafafe000-0xafb00000 stacksize=1036kb | held mutexes= @ java.lang.object.wait! (native method) - waiting on <0x15d1276f> (a java.lang.daemons$finalizerwatchdogdaemon) @ java.lang.daemons$finalizerwatchdogdaemon.waitforobject (daemons.java:240) - locked <0x15d1276f> (a java.lang.daemons$finalizerwatchdogdaemon) @ java.lang.daemons$finalizerwatchdogdaemon.run (daemons.java:212) @ java.lang.thread.run (thread.java:818) "finalizerdaemon" tid=10 waiting "finalizerdaemon" daemon prio=5 tid=10 waiting | group="system" scount=1 dscount=0 obj=0x12c74340 self=0xb4a2c000 | systid=17320 nice=0 cgrp=default sched=0/0 handle=0xb4918d00 | state=s schedstat=( 0 0 0 ) utm=18 stm=8 core=3 hz=100 | stack=0xb3d11000-0xb3d13000 stacksize=1036kb | held mutexes= @ java.lang.object.wait! (native method) - waiting on <0x32ebcc7c> (a java.lang.ref.referencequeue) @ java.lang.object.wait (object.java:422) @ java.lang.ref.referencequeue.remove (referencequeue.java:101) - locked <0x32ebcc7c> (a java.lang.ref.referencequeue) @ java.lang.ref.referencequeue.remove (referencequeue.java:72) @ java.lang.daemons$finalizerdaemon.run (daemons.java:174) @ java.lang.thread.run (thread.java:818) "binder_1" tid=11 native "binder_1" prio=5 tid=11 native | group="main" scount=1 dscount=0 obj=0x12c620a0 self=0xb4a2e400 | systid=17324 nice=0 cgrp=default sched=0/0 handle=0xb491ab00 | state=s schedstat=( 0 0 0 ) utm=17 stm=21 core=0 hz=100 | stack=0xa4da0000-0xa4da2000 stacksize=1012kb | held mutexes= native: pc 000000000003b730 /system/lib/libc.so (__ioctl+8) native: pc 0000000000052631 /system/lib/libc.so (ioctl+14) native: pc 000000000001f417 /system/lib/libbinder.so (android::ipcthreadstate::talkwithdriver(bool)+138) native: pc 000000000001f907 /system/lib/libbinder.so (android::ipcthreadstate::getandexecutecommand()+6) native: pc 000000000001f969 /system/lib/libbinder.so (android::ipcthreadstate::jointhreadpool(bool)+48) native: pc 0000000000023c17 /system/lib/libbinder.so (???) native: pc 0000000000010525 /system/lib/libutils.so (android::thread::_threadloop(void*)+112) native: pc 00000000000606ed /system/lib/libandroid_runtime.so (android::androidruntime::javathreadshell(void*)+72) native: pc 0000000000010095 /system/lib/libutils.so (???) native: pc 0000000000016eff /system/lib/libc.so (__pthread_start(void*)+30) native: pc 0000000000014f33 /system/lib/libc.so (__start_thread+6) "binder_2" tid=12 native "binder_2" prio=5 tid=12 native | group="main" scount=1 dscount=0 obj=0x12c650a0 self=0xafd4d400 | systid=17325 nice=0 cgrp=default sched=0/0 handle=0xb491ad80 | state=s schedstat=( 0 0 0 ) utm=21 stm=16 core=2 hz=100 | stack=0xa4ca2000-0xa4ca4000 stacksize=1012kb | held mutexes= native: pc 000000000003b730 /system/lib/libc.so (__ioctl+8) native: pc 0000000000052631 /system/lib/libc.so (ioctl+14) native: pc 000000000001f417 /system/lib/libbinder.so (android::ipcthreadstate::talkwithdriver(bool)+138) native: pc 000000000001f907 /system/lib/libbinder.so (android::ipcthreadstate::getandexecutecommand()+6) native: pc 000000000001f969 /system/lib/libbinder.so (android::ipcthreadstate::jointhreadpool(bool)+48) native: pc 0000000000023c17 /system/lib/libbinder.so (???) native: pc 0000000000010525 /system/lib/libutils.so (android::thread::_threadloop(void*)+112) native: pc 00000000000606ed /system/lib/libandroid_runtime.so (android::androidruntime::javathreadshell(void*)+72) native: pc 0000000000010095 /system/lib/libutils.so (???) native: pc 0000000000016eff /system/lib/libc.so (__pthread_start(void*)+30) native: pc 0000000000014f33 /system/lib/libc.so (__start_thread+6) "binder_3" tid=14 native "binder_3" prio=5 tid=14 native | group="main" scount=1 dscount=0 obj=0x12f337c0 self=0xafd57800 | systid=17482 nice=0 cgrp=default sched=0/0 handle=0xafc95980 | state=s schedstat=( 0 0 0 ) utm=21 stm=16 core=3 hz=100 | stack=0xa2e23000-0xa2e25000 stacksize=1012kb | held mutexes= native: pc 000000000003b730 /system/lib/libc.so (__ioctl+8) native: pc 0000000000052631 /system/lib/libc.so (ioctl+14) native: pc 000000000001f417 /system/lib/libbinder.so (android::ipcthreadstate::talkwithdriver(bool)+138) native: pc 000000000001f907 /system/lib/libbinder.so (android::ipcthreadstate::getandexecutecommand()+6) native: pc 000000000001f969 /system/lib/libbinder.so (android::ipcthreadstate::jointhreadpool(bool)+48) native: pc 0000000000023c17 /system/lib/libbinder.so (???) native: pc 0000000000010525 /system/lib/libutils.so (android::thread::_threadloop(void*)+112) native: pc 00000000000606ed /system/lib/libandroid_runtime.so (android::androidruntime::javathreadshell(void*)+72) native: pc 0000000000010095 /system/lib/libutils.so (???) native: pc 0000000000016eff /system/lib/libc.so (__pthread_start(void*)+30) native: pc 0000000000014f33 /system/lib/libc.so (__start_thread+6) "asynctask #1" tid=15 waiting "asynctask #1" prio=5 tid=15 waiting | group="main" scount=1 dscount=0 obj=0x12ea9760 self=0xafd4e400 | systid=17368 nice=10 cgrp=bg_non_interactive sched=0/0 handle=0xafc94300 | state=s schedstat=( 0 0 0 ) utm=1 stm=2 core=2 hz=100 | stack=0xa2d19000-0xa2d1b000 stacksize=1036kb | held mutexes= @ java.lang.object.wait! (native method) - waiting on <0x2a9c0905> (a java.lang.object) @ java.lang.thread.parkfor (thread.java:1220) - locked <0x2a9c0905> (a java.lang.object) @ sun.misc.unsafe.park (unsafe.java:299) @ java.util.concurrent.locks.locksupport.park (locksupport.java:157) @ @ java.util.concurrent.threadpoolexecutor.runworker (threadpoolexecutor.java:1097) @ java.util.concurrent.threadpoolexecutor$worker.run (threadpoolexecutor.java:587) @ java.lang.thread.run (thread.java:818) "crashlytics exception handler1" tid=31 waiting "crashlytics exception handler1" prio=5 tid=31 waiting | group="main" scount=1 dscount=0 obj=0x12f2d220 self=0xafd55000 | systid=17404 nice=10 cgrp=bg_non_interactive sched=0/0 handle=0xafc97c80 | state=s schedstat=( 0 0 0 ) utm=3 stm=0 core=1 hz=100 | stack=0xa1ee9000-0xa1eeb000 stacksize=1036kb | held mutexes= @ java.lang.object.wait! (native method) - waiting on <0x073a6eb9> (a java.lang.object) @ java.lang.thread.parkfor (thread.java:1220) - locked <0x073a6eb9> (a java.lang.object) @ sun.misc.unsafe.park (unsafe.java:299) @ java.util.concurrent.locks.locksupport.park (locksupport.java:157) @ java.util.concurrent.locks.abstractqueuedsynchronizer$conditionobject.await (abstractqueuedsynchronizer.java:2016) @ java.util.concurrent.linkedblockingqueue.take (linkedblockingqueue.java:410) @ java.util.concurrent.threadpoolexecutor.gettask (threadpoolexecutor.java:1035) @ java.util.concurrent.threadpoolexecutor.runworker (threadpoolexecutor.java:1097) @ java.util.concurrent.threadpoolexecutor$worker.run (threadpoolexecutor.java:587) @ c.a.a.a.a.b.n$1$1.a (executorutils.java:75) @ c.a.a.a.a.b.h.run (backgroundpriorityrunnable.java:30) @ java.lang.thread.run (thread.java:818) "answers events handler1" tid=32 waiting "answers events handler1" prio=5 tid=32 waiting | group="main" scount=1 dscount=0 obj=0x13072160 self=0xafd54800 | systid=17397 nice=10 cgrp=bg_non_interactive sched=0/0 handle=0xafc98180 | state=s schedstat=( 0 0 0 ) utm=1 stm=0 core=1 hz=100 | stack=0xa177a000-0xa177c000 stacksize=1036kb | held mutexes= @ java.lang.object.wait! (native method) - waiting on <0x3bda2880> (a java.lang.object) @ java.lang.thread.parkfor (thread.java:1220) - locked <0x3bda2880> (a java.lang.object) @ sun.misc.unsafe.park (unsafe.java:299) @ java.util.concurrent.locks.locksupport.park (locksupport.java:157) @ java.util.concurrent.locks.abstractqueuedsynchronizer$conditionobject.await (abstractqueuedsynchronizer.java:2016) @ java.util.concurrent.scheduledthreadpoolexecutor$delayedworkqueue.take (scheduledthreadpoolexecutor.java:1048) @ java.util.concurrent.scheduledthreadpoolexecutor$delayedworkqueue.take (scheduledthreadpoolexecutor.java:776) @ java.util.concurrent.threadpoolexecutor.gettask (threadpoolexecutor.java:1035) @ java.util.concurrent.threadpoolexecutor.runworker (threadpoolexecutor.java:1097) @ java.util.concurrent.threadpoolexecutor$worker.run (threadpoolexecutor.java:587) @ c.a.a.a.a.b.n$1$1.a (executorutils.java:75) @ c.a.a.a.a.b.h.run (backgroundpriorityrunnable.java:30) @ java.lang.thread.run (thread.java:818) "googleapihandler" tid=33 native "googleapihandler" prio=5 tid=33 native | group="main" scount=1 dscount=0 obj=0x12ec6ba0 self=0xafd55400 | systid=17407 nice=9 cgrp=default sched=0/0 handle=0xafc97f00 | state=s schedstat=( 0 0 0 ) utm=5 stm=1 core=0 hz=100 | stack=0xa21ed000-0xa21ef000 stacksize=1036kb | held mutexes= native: pc 000000000003b3ec /system/lib/libc.so (__epoll_pwait+20) native: pc 00000000000151cf /system/lib/libc.so (epoll_pwait+26) native: pc 00000000000151dd /system/lib/libc.so (epoll_wait+6) native: pc 00000000000124eb /system/lib/libutils.so (android::looper::pollinner(int)+98) native: pc 0000000000012715 /system/lib/libutils.so (android::looper::pollonce(int, int*, int*, void**)+92) native: pc 00000000000825b9 /system/lib/libandroid_runtime.so (android::nativemessagequeue::pollonce(_jnienv*, int)+22) native: pc 00000000000b39cb /data/dalvik-cache/arm/system@<email_address> (java_android_os_messagequeue_nativepollonce__ji+102) @ android.os.messagequeue.nativepollonce (native method) @ android.os.messagequeue.next (messagequeue.java:143) @ android.os.looper.loop (looper.java:122) @ android.os.handlerthread.run (handlerthread.java:61) "thread-881" tid=35 waiting "thread-881" prio=5 tid=35 waiting | group="main" scount=1 dscount=0 obj=0x1306fb20 self=0xafd5a800 | systid=17422 nice=10 cgrp=bg_non_interactive sched=0/0 handle=0xafc95c00 | state=s schedstat=( 0 0 0 ) utm=0 stm=0 core=2 hz=100 | stack=0xa187e000-0xa1880000 stacksize=1036kb | held mutexes= @ java.lang.object.wait! (native method) - waiting on <0x3db3b2fe> (a java.lang.object) @ java.lang.thread.parkfor (thread.java:1220) - locked <0x3db3b2fe> (a java.lang.object) @ sun.misc.unsafe.park (unsafe.java:299) @ java.util.concurrent.locks.locksupport.park (locksupport.java:157) @ java.util.concurrent.locks.abstractqueuedsynchronizer$conditionobject.await (abstractqueuedsynchronizer.java:2016) @ java.util.concurrent.linkedblockingqueue.take (linkedblockingqueue.java:410) @ com.myapp.applicationcls$2.run (applicationcls.java:365) @ java.lang.thread.run (thread.java:818) "signal catcher" tid=5 runnable "signal catcher" daemon prio=5 tid=5 runnable | group="system" scount=0 dscount=0 obj=0x12c070a0 self=0xb4828c00 | systid=17318 nice=0 cgrp=default sched=0/0 handle=0xb4918300 | state=r schedstat=( 0 0 0 ) utm=7 stm=3 core=1 hz=100 | stack=0xb3f1b000-0xb3f1d000 stacksize=1012kb | held mutexes= "thread list lock" "mutator lock"(exclusive held) native: pc 0000000000004e64 /system/lib/libbacktrace_libc++.so (unwindcurrent::unwind(unsigned int, ucontext*)+23) native: pc 0000000000003665 /system/lib/libbacktrace_libc++.so (backtrace::unwind(unsigned int, ucontext*)+8) native: pc 0000000000243459 /system/lib/libart.so (art::dumpnativestack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int, char const*, art::mirror::artmethod*)+68) native: pc 00000000002277c3 /system/lib/libart.so (art::thread::dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) const+146) native: pc 0000000000230b4b /system/lib/libart.so (art::threadlist::dumpforsigquit(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)+142) native: pc 0000000000216017 /system/lib/libart.so (art::runtime::dumpforsigquit(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)+66) native: pc 000000000021c4a5 /system/lib/libart.so (art::signalcatcher::handlesigquit()+752) native: pc 000000000021cb4f /system/lib/libart.so (art::signalcatcher::run(void*)+318) native: pc 0000000000016eff /system/lib/libc.so (__pthread_start(void*)+30) native: pc 0000000000014f33 /system/lib/libc.so (__start_thread+6)
Comments
Post a Comment