Open
Description
Description
[ANR] [Leakcanary-Release] ScreenOffTrigger BroadcastReceiver
Steps to Reproduce
Running leakcanary-release and have ScreenTrigger enabled
description: bg anr: Broadcast of Intent { act=android.intent.action.SCREEN_ON flg=0x50200010 cmp=x/leakcanary.ScreenOffTrigger$screenReceiver$1 (has extras) }
"main" sysTid=9748
#00 pc 0000000000057880 /apex/com.android.runtime/lib64/bionic/libc.so (syscall+32) (BuildId: 544bc6c8e3556e98efbc4406b97f6a3e)
#01 pc 0000000000232858 /apex/com.android.art/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+140) (BuildId: 02bec5940be704b863f6514fc7d81c41)
#02 pc 0000000000460bc0 /apex/com.android.art/lib64/libart.so (artJniMethodEnd+336) (BuildId: 02bec5940be704b863f6514fc7d81c41)
#03 pc 00000000005c0dfc /apex/com.android.art/lib64/libart.so (art_jni_method_end+12) (BuildId: 02bec5940be704b863f6514fc7d81c41)
#04 pc 000000000033f590 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (art_jni_trampoline+240)
#05 pc 0000000000a2e680 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.MessageQueue.next+304)
#06 pc 0000000000a2b180 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Looper.loopOnce+96)
#07 pc 0000000000a2b078 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Looper.loop+1112)
#08 pc 000000000078b100 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.app.ActivityThread.main+2432)
#09 pc 000000000033ee80 /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640) (BuildId: 02bec5940be704b863f6514fc7d81c41)
#10 pc 000000000037ff40 /apex/com.android.art/lib64/libart.so (_jobject* art::InvokeMethod<(art::PointerSize)8>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+1556) (BuildId: 02bec5940be704b863f6514fc7d81c41)
#11 pc 000000000037f91c /apex/com.android.art/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*) (.__uniq.165753521025965369065708152063621506277)+32) (BuildId: 02bec5940be704b863f6514fc7d81c41)
#12 pc 00000000003456a8 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (art_jni_trampoline+120)
#13 pc 0000000000d99aa4 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+132)
#14 pc 0000000000da5054 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (com.android.internal.os.ZygoteInit.main+3604)
#15 pc 000000000033ee80 /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640) (BuildId: 02bec5940be704b863f6514fc7d81c41)
#16 pc 00000000004e3504 /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+728) (BuildId: 02bec5940be704b863f6514fc7d81c41)
#17 pc 000000000057c8fc /apex/com.android.art/lib64/libart.so (art::JNI<true>::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+156) (BuildId: 02bec5940be704b863f6514fc7d81c41)
#18 pc 00000000000e3be8 /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+108) (BuildId: 8f11c1e5b9cd42e20eff39198f365b18)
#19 pc 00000000000f05bc /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+856) (BuildId: 8f11c1e5b9cd42e20eff39198f365b18)
#20 pc 0000000000002558 /system/bin/app_process64 (main+1280) (BuildId: 63c2631b63b6085792801dff29427263)
#21 pc 0000000000053e8c /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+108) (BuildId: 544bc6c8e3556e98efbc4406b97f6a3e)
Expected behavior:
BroadcastReceivers by default run on the main thread, calling the onReceive logic on background thread would fix these ANR instances
Version Information
- LeakCanary version: 2.14
- Android OS version: 14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment