Home » Android » Android ANR In libc.so

Android ANR In libc.so

Posted by: admin May 14, 2020 Leave a comment


I’m getting an ANR report, which is reproducible by the user on a device I don’t have. However, I see no threading issues in my own code, only the following.

"main" prio=5 tid=1 Native
| group="main" sCount=1 dsCount=0 obj=0x7682cf40 self=0xb4827800 
| sysTid=29689 nice=0 cgrp=apps/bg_non_interactive sched=0/0 handle=0xb6ff4bec
| state=S schedstat=( 194686184 170352917 762 ) utm=10 stm=9 core=3 HZ=100
| stack=0xbe5fd000-0xbe5ff000 stackSize=8MB
| held mutexes=
kernel: (couldn't read /proc/self/task/29689/stack)
native: #00 pc 0003732c  /system/lib/libc.so (__epoll_pwait+20)
native: #01 pc 000121bf  /system/lib/libc.so (epoll_pwait+26)
native: #02 pc 000121cd  /system/lib/libc.so (epoll_wait+6)
native: #03 pc 00010f23  /system/lib/libutils.so (_ZN7android6Looper9pollInnerEi+98)
native: #04 pc 0001114d  /system/lib/libutils.so (_ZN7android6Looper8pollOnceEiPiS1_PPv+92)
native: #05 pc 00084d91  /system/lib/libandroid_runtime.so (_ZN7android18NativeMessageQueue8pollOnceEP7_JNIEnvi+22)
native: #06 pc 000b61e3  /system/framework/arm/boot.oat (Java_android_os_MessageQueue_nativePollOnce__JI+102)
at android.os.MessageQueue.nativePollOnce(Native method)
at android.os.MessageQueue.next(MessageQueue.java:143)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:6938)
at java.lang.reflect.Method.invoke!(Native method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)

I would be grateful for any ideas on what this might be. Several threads also have this same stack trace, but nothing pointing to anything in my code.

How to&Answers:

After reviewing the ANR report, I finally found that another thread was hung. I believe the trace I posted is proper behavior. Un-blocking the other thread fixed this issue for the user.