Skip to content

JNI DETECTED ERROR IN APPLICATION: can't call java.lang.Object com.google.firebase.database.DataSnapshot.getValue() #369

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
SrirachaSource opened this issue May 20, 2019 · 6 comments

Comments

@SrirachaSource
Copy link

SrirachaSource commented May 20, 2019

Please fill in the following fields:

Unity Version: 2017.4.27
Firebase Unity SDK version: 6.0.0
Firebase plugins in use (Auth, Database, etc.): Auth, Database, Analytics, RemoteConfig, Messaging
Additional SDKs you are using (Facebook, AdMob, etc.): AdMob, Unity IAP
Platform you are using the Unity editor on (Mac, Windows, or Linux): Windows, Mac
Platform you are targeting (iOS, Android, and/or desktop): iOS, Android

Please describe the issue here:

(Please list the full steps to reproduce the issue. Include device logs, Unity logs, and stack traces if available.)
Building build with the new 6.0.0 version (was previously working under 4.5.2)
Start up app, wait through splash screen, must be signed into an account (sign up under settings) and have leaderboard active (which uses database). Then when starting up, auto sign in occurs, database requests start firing off to fill in the leaderboard. (maybe TMI: IAP is also pulling doing purchasing init in the background). App hangs most of the time, sometimes when restarting the app things work (no hang). Curiously the app will usually not hang while ADB is connected you have to disconnect and then start it up. Even curiously-er it hangs 100% of the time when starting from fresh install (with ADB cable unplugged) which is the case for someone installing from the store for the first time.

Please answer the following, if applicable:

Have you been able to reproduce this issue with just the Firebase Unity quickstarts (this GitHub project)?
n/a I've been using firebase for about 2 years now

CRASH LOG

(Filename: /Users/builduser/buildslave/unity/build/artifacts/generated/Android/runtime/DebugBindings.gen.cpp Line: 51)

05-20 15:03:05.401 10865-10921/? A/aimadiction.co: java_vm_ext.cc:542] JNI DETECTED ERROR IN APPLICATION: can't call java.lang.Object com.google.firebase.database.DataSnapshot.getValue() on null object
java_vm_ext.cc:542] in call to CallObjectMethodV
java_vm_ext.cc:542] from boolean com.unity3d.player.UnityPlayer.nativeRender()
java_vm_ext.cc:542] "UnityMain" prio=5 tid=26 Runnable
java_vm_ext.cc:542] | group="main" sCount=0 dsCount=0 flags=0 obj=0x12c81758 self=0x72b4c37800
java_vm_ext.cc:542] | sysTid=10921 nice=0 cgrp=default sched=0/0 handle=0x72a32df4f0
java_vm_ext.cc:542] | state=R schedstat=( 4103897740 298315453 10985 ) utm=355 stm=54 core=5 HZ=100
java_vm_ext.cc:542] | stack=0x72a31dc000-0x72a31de000 stackSize=1041KB
java_vm_ext.cc:542] | held mutexes= "mutator lock"(shared held)
java_vm_ext.cc:542] native: #00 pc 00000000003c7324 /system/lib64/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits>&, int, BacktraceMap*, char const*, art::ArtMethod*, void*, bool)+220)
java_vm_ext.cc:542] native: #1 pc 0000000000495dc0 /system/lib64/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits>&, bool, BacktraceMap*, bool) const+352)
java_vm_ext.cc:542] native: #2 pc 00000000002e85ac /system/lib64/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+972)
java_vm_ext.cc:542] native: #3 pc 00000000002e89cc /system/lib64/libart.so (art::JavaVMExt::JniAbortV(char const*, char const*, std::__va_list)+108)
java_vm_ext.cc:542] native: #4 pc 00000000000fd5f8 /system/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::AbortF(char const*, ...)+144)
java_vm_ext.cc:542] native: #5 pc 0000000000101458 /system/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::CheckMethodAndSig(art::ScopedObjectAccess&, _jobject*, _jclass*, _jmethodID*, art::Primitive::Type, art::InvokeType)+1584)
java_vm_ext.cc:542] native: #6 pc 00000000000ffcb4 /system/lib64/libart.so (art::(anonymous namespace)::CheckJNI::CallMethodV(char const*, _JNIEnv*, _jobject*, _jclass*, _jmethodID*, std::__va_list, art::Primitive::Type, art::InvokeType)+756)
java_vm_ext.cc:542] native: #7 pc 00000000000ec7d4 /system/lib64/libart.so (art::(anonymous namespace)::CheckJNI::CallObjectMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list)+84)
java_vm_ext.cc:542] native: #8 pc 000000000010f218 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libFirebaseCppApp-6.0.0.so (_JNIEnv::CallObjectMethod(_jobject*, _jmethodID*, ...)+92)
java_vm_ext.cc:542] native: #9 pc 000000000014172c /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libFirebaseCppApp-6.0.0.so (firebase::database::internal::DataSnapshotInternal::GetValue() const+32)
java_vm_ext.cc:542] native: #10 pc 000000000013daa4 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libFirebaseCppApp-6.0.0.so (Firebase_Database_CSharp_InternalDataSnapshot_value+16)
java_vm_ext.cc:542] native: #11 pc 0000000001609abc /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so (???)
java_vm_ext.cc:542] native: #12 pc 00000000016076e8 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so (???)
java_vm_ext.cc:542] native: #13 pc 0000000001607080 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so (???)
java_vm_ext.cc:542] native: #14 pc 0000000000863488 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so (???)
java_vm_ext.cc:542] native: #15 pc 0000000000eed788 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so (???)
java_vm_ext.cc:542] native: #16 pc 0000000000ee0b80 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so (???)
java_vm_ext.cc:542] native: #17 pc 0000000000eedd78 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so (???)
java_vm_ext.cc:542] native: #18 pc 0000000000eea88c /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so (???)
java_vm_ext.cc:542] native: #19 pc 0000000000eea720 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so (???)
java_vm_ext.cc:542] native: #20 pc 000000000142f934 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so (???)
java_vm_ext.cc:542] native: #21 pc 000000000142f8a8 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so (???)
java_vm_ext.cc:542] native: #22 pc 000000000075c240 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so (???)
java_vm_ext.cc:542] native: #23 pc 00000000006aed30 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so (???)
java_vm_ext.cc:542] native: #24 pc 00000000004c8814 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libunity.so (???)
java_vm_ext.cc:542] native: #25 pc 00000000004c35c8 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libunity.so (???)
java_vm_ext.cc:542] native: #26 pc 000000000040d1dc /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libunity.so (???)
java_vm_ext.cc:542] native: #27 pc 000000000040d670 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libunity.so (???)
java_vm_ext.cc:542] native: #28 pc 0000000000138d64 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libunity.so (???)
java_vm_ext.cc:542] native: #29 pc 000000000013b7f4 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libunity.so (???)
java_vm_ext.cc:542] native: #30 pc 000000000003747c /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/oat/arm64/base.odex (offset 36000) (com.unity3d.player.GoogleVrProxy.isQuiting [DEDUPED]+124)
java_vm_ext.cc:542] native: #31 pc 0000000000006688 /dev/ashmem/dalvik-jit-code-cache (deleted) (???)
java_vm_ext.cc:542] at com.unity3d.player.UnityPlayer.nativeRender(Native method)
java_vm_ext.cc:542] at com.unity3d.player.UnityPlayer.c(unavailable:-1)
java_vm_ext.cc:542] at com.unity3d.player.UnityPlayer$e$2.queueIdle(unavailable:-1)
java_vm_ext.cc:542] at android.os.MessageQueue.next(MessageQueue.java:395)
java_vm_ext.cc:542] at android.os.Looper.loop(Looper.java:160)
java_vm_ext.cc:542] at com.unity3d.player.UnityPlayer$e.run(unavailable:-1)
java_vm_ext.cc:542]
05-20 15:03:05.497 10865-10921/? A/aimadiction.co: runtime.cc:558] Runtime aborting...
runtime.cc:558] Dumping all threads without appropriate locks held: thread list lock mutator lock
runtime.cc:558] All threads:
runtime.cc:558] DALVIK THREADS (89):
runtime.cc:558] "UnityMain" prio=5 tid=26 Runnable
runtime.cc:558] | group="" sCount=0 dsCount=0 flags=0 obj=0x12c81758 self=0x72b4c37800
runtime.cc:558] | sysTid=10921 nice=0 cgrp=default sched=0/0 handle=0x72a32df4f0
runtime.cc:558] | state=R schedstat=( 4134494669 298342120 10998 ) utm=357 stm=55 core=5 HZ=100
runtime.cc:558] | stack=0x72a31dc000-0x72a31de000 stackSize=1041KB
runtime.cc:558] | held mutexes= "abort lock" "mutator lock"(shared held)
runtime.cc:558] native: #00 pc 00000000003c7324 /system/lib64/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits>&, int, BacktraceMap*, char const*, art::ArtMethod*, void*, bool)+220)
runtime.cc:558] native: #1 pc 0000000000495dc0 /system/lib64/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits>&, bool, BacktraceMap*, bool) const+352)
runtime.cc:558] native: #2 pc 00000000004afd5c /system/lib64/libart.so (art::DumpCheckpoint::Run(art::Thread*)+844)
runtime.cc:558] native: #3 pc 00000000004a8a9c /system/lib64/libart.so (art::ThreadList::RunCheckpoint(art::Closure*, art::Closure*)+476)
runtime.cc:558] native: #4 pc 00000000004a7eec /system/lib64/libart.so (art::ThreadList::Dump(std::__1::basic_ostream<char, std::__1::char_traits>&, bool)+1036)
runtime.cc:558] native: #5 pc 000000000046a9d0 /system/lib64/libart.so (art::Runtime::Abort(char const*)+392)
runtime.cc:558] native: #6 pc 0000000000008d2c /system/lib64/libbase.so (android::base::LogMessage::~LogMessage()+724)
runtime.cc:558] native: #7 pc 00000000002e8858 /system/lib64/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+1656)
runtime.cc:558] native: #8 pc 00000000002e89cc /system/lib64/libart.so (art::JavaVMExt::JniAbortV(char const*, char const*, std::__va_list)+108)
runtime.cc:558] native: #9 pc 00000000000fd5f8 /system/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::AbortF(char const*, ...)+144)
runtime.cc:558] native: #10 pc 0000000000101458 /system/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::CheckMethodAndSig(art::ScopedObjectAccess&, _jobject*, _jclass*, _jmethodID*, art::Primitive::Type, art::InvokeType)+1584)
runtime.cc:558] native: #11 pc 00000000000ffcb4 /system/lib64/libart.so (art::(anonymous namespace)::CheckJNI::CallMethodV(char const*, _JNIEnv*, _jobject*, _jclass*, _jmethodID*, std::__va_list, art::Primitive::Type, art::InvokeType)+756)
runtime.cc:558] native: #12 pc 00000000000ec7d4 /system/lib64/libart.so (art::(anonymous namespace)::CheckJNI::CallObjectMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list)+84)
runtime.cc:558] native: #13 pc 000000000010f218 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libFirebaseCppApp-6.0.0.so (_JNIEnv::CallObjectMethod(_jobject*, _jmethodID*, ...)+92)
runtime.cc:558] native: #14 pc 000000000014172c /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libFirebaseCppApp-6.0.0.so (firebase::database::internal::DataSnapshotInternal::GetValue() const+32)
runtime.cc:558] native: #15 pc 000000000013daa4 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libFirebaseCppApp-6.0.0.so (Firebase_Database_CSharp_InternalDataSnapshot_value+16)
runtime.cc:558] native: #16 pc 0000000001609abc /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so (???)
runtime.cc:558] native: #17 pc 00000000016076e8 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so (???)
runtime.cc:558] native: #18 pc 0000000001607080 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so (???)
runtime.cc:558] native: #19 pc 0000000000863488 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so (???)
runtime.cc:558] native: #20 pc 0000000000eed788 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so (???)
runtime.cc:558] native: #21 pc 0000000000ee0b80 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so (???)
runtime.cc:558] native: #22 pc 0000000000eedd78 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so (???)
runtime.cc:558] native: #23 pc 0000000000eea88c /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so (???)
runtime.cc:558] native: #24 pc 0000000000eea720 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so (???)
runtime.cc:558] native: #25 pc 000000000142f934 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so (???)
runtime.cc:558] native: #26 pc 000000000142f8a8 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so (???)
runtime.cc:558] native: #27 pc 000000000075c240 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so (???)
runtime.cc:558] native: #28 pc 00000000006aed30 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so (???)
runtime.cc:558] native: #29 pc 00000000004c8814 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libunity.so (???)
runtime.cc:558] native: #30 pc 00000000004c35c8 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libunity.so (???)
runtime.cc:558] native: #31 pc 000000000040d1dc /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libunity.so (???)
runtime.cc:558] native: #32 pc 000000000040d670 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libunity.so (???)
runtime.cc:558] native: #33 pc 0000000000138d64 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libunity.so (???)
runtime.cc:558] native: #34 pc 000000000013b7f4 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libunity.so (???)
runtime.cc:558] at com.unity3d.player.UnityPlayer.nativeRender(Native method)
runtime.cc:558] at com.unity3d.player.UnityPlayer.c(unavailable:-1)
runtime.cc:558] at com.unity3d.player.UnityPlayer$e$2.queueIdle(unavailable:-1)
runtime.cc:558] at android.os.MessageQueue.next(MessageQueue.java:395)
runtime.cc:558] at android.os.Looper.loop(Looper.java:160)
runtime.cc:558] at com.unity3d.player.UnityPlayer$e.run(unavailable:-1)
runtime.cc:558]
runtime.cc:558] "main" prio=5 tid=1 Native
runtime.cc:558] | group="" sCount=1 dsCount=0 flags=1 obj=0x74c0aa18 self=0x72bd014c00
runtime.cc:558] | sysTid=10865 nice=-10 cgrp=default sched=0/0 handle=0x7342a1c548
runtime.cc:558] | state=S schedstat=( 1133269826 217462231 2783 ) utm=57 stm=55 core=6 HZ=100
runtime.cc:558] | stack=0x7fc2143000-0x7fc2145000 stackSize=8MB
runtime.cc:558] | held mutexes=
runtime.cc:558] kernel: (couldn't read /proc/self/task/10865/stack)
runtime.cc:558] native: #00 pc 000000000006f668 /system/lib64/libc.so (__epoll_pwait+8)
runtime.cc:558] native: #1 pc 00000000000141c0 /system/lib64/libutils.so (android::Looper::pollInner(int)+144)
runtime.cc:558] native: #2 pc 000000000001408c /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+60)
runtime.cc:558] native: #3 pc 0000000000120e8c /system/lib64/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+44)
runtime.cc:558] at android.os.MessageQueue.nativePollOnce(Native method)
runtime.cc:558] at android.os.MessageQueue.next(MessageQueue.java:326)
runtime.cc:558] at android.os.Looper.loop(Looper.java:160)
runtime.cc:558] at android.app.ActivityThread.main(ActivityThread.java:6718)
runtime.cc:558] at java.lang.reflect.Method.invoke(Native method)
runtime.cc:558] at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
runtime.cc:558] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
runtime.cc:558]
runtime.cc:558] "Jit thread pool worker thread 0" prio=5 tid=2 Native
runtime.cc:558] | group="" sCount=1 dsCount=0 flags=1 obj=0x12c80198 self=0x72b6623000
runtime.cc:558] | sysTid=10871 nice=9 cgrp=default sched=0/0 handle=0x72b6a5a4f0
runtime.cc:558] | state=S schedstat=( 179526155 56317749 309 ) utm=14 stm=2 core=5 HZ=100
runtime.cc:558] | stack=0x72b695c000-0x72b695e000 stackSize=1021KB
runtime.cc:558] | held mutexes=
runtime.cc:558] kernel: (couldn't read /proc/self/task/10871/stack)
runtime.cc:558] native: #00 pc 000000000001ed2c /system/lib64/libc.so (syscall+28)
runtime.cc:558] native: #1 pc 00000000000d7424 /system/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+148)
runtime.cc:558] native: #2 pc 00000000004b15d4 /system/lib64/libart.so (art::ThreadPool::GetTask(art::Thread*)+260)
runtime.cc:558] native: #3 pc 00000000004b0b2c /system/lib64/libart.so (art::ThreadPoolWorker::Run()+124)
runtime.cc:558] native: #4 pc 00000000004b05dc /system/lib64/libart.so (art::ThreadPoolWorker::Callback(void*)+148)
runtime.cc:558] native: #5 pc 000000000008319c /system/lib64/libc.so (__pthread_start(void*)+36)
runtime.cc:558] native: #6 pc 00000000000233bc /system/lib64/libc.so (__start_thread+68)
runtime.cc:558] (no managed stack frames)
runtime.cc:558]
runtime.cc:558] "Signal Catcher" prio=5 tid=3 WaitingInMainSignalCatcherLoop
runtime.cc:558] | group="" sCount=1 dsCount=0 flags=1 obj=0x12c80220 self=0x72bd016400
runtime.cc:558] | sysTid=10873 nice=0 cgrp=default sched=0/0 handle=0x72b69594f0
runtime.cc:558] | state=S schedstat=( 190105 1634947 2 ) utm=0 stm=0 core=6 HZ=100
runtime.cc:558] | stack=0x72b685e000-0x72b6860000 stackSize=1009KB
runtime.cc:558] | held mutexes=
runtime.cc:558] kernel: (couldn't read /proc/self/task/10873/stack)
runtime.cc:558] native: #00 pc 000000000006f848 /system/lib64/libc.so (__rt_sigtimedwait+8)
runtime.cc:558] native: #1 pc 000000000002db18 /system/lib64/libc.so (sigwait+64)
runtime.cc:558] native: #2 pc 0000000000483a90 /system/lib64/libart.so (art::SignalCatcher::WaitForSignal(art::Thread*, art::SignalSet&)+416)
runtime.cc:558] native: #3 pc 0000000000482430 /system/lib64/libart.so (art::SignalCatcher::Run(void*)+272)
runtime.cc:558] native: #4 pc 000000000008319c /system/lib64/libc.so (__pthread_start(void*)+36)
runtime.cc:558] native: #5 pc 00000000000233bc /system/lib64/libc.so (__start_thread+68)
runtime.cc:558] (no managed stack frames)
runtime.cc:558]
runtime.cc:558] "FinalizerWatchdogDaemon" prio=5 tid=4 Waiting
runtime.cc:558] | group="" sCount=1 dsCount=0 flags=1 obj=0x12c802a8 self=0x72b4d64800
runtime.cc:558] | sysTid=10876 nice=4 cgrp=default sched=0/0 handle=0x72a82774f0
runtime.cc:558] | state=S schedstat=( 328804 3143645 15 ) utm=0 stm=0 core=4 HZ=100
runtime.cc:558] | stack=0x72a8174000-0x72a8176000 stackSize=1041KB
runtime.cc:558] | held mutexes=
runtime.cc:558] kernel: (couldn't read /proc/self/task/10876/stack)
runtime.cc:558] native: #00 pc 000000000001ed2c /system/lib64/libc.so (syscall+28)
runtime.cc:558] native: #1 pc 00000000000d7424 /system/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+148)
runtime.cc:558] native: #2 pc 00000000003c2860 /system/lib64/libart.so (art::Monitor::Wait(art::Thread*, long, int, bool, art::ThreadState)+640)
runtime.cc:558] native: #3 pc 00000000003c4324 /system/lib64/libart.so (art::Monitor::Wait(art::Thread*, art::mirror::Object*, long, int, bool, art::ThreadState)+428)
runtime.cc:558] at java.lang.Object.wait(Native method)
runtime.cc:558] - waiting on <0x05c66a6f> (a java.lang.Daemons$FinalizerWatchdogDaemon)
runtime.cc:558] at java.lang.Daemons$FinalizerWatchdogDaemon.sleepUntilNeeded(Daemons.java:297)
runtime.cc:558] - locked <0x05c66a6f> (a java.lang.Daemons$FinalizerWatchdogDaemon)
runtime.cc:558] at java.lang.Daemons$FinalizerWatchdogDaemon.runInternal(Daemons.java:277)
runtime.cc:558] at java.lang.Daemons$Daemon.run(Daemons.java:103)
runtime.cc:558] at java.lang.Thread.run(Thread.java:764)
runtime.cc:558]
runtime.cc:558] "Binder:10865_1" prio=5 tid=5 Native
runtime.cc:558] | group="" sCount=1 dsCount=0 flags=1 obj=0x12c80338 self=0x72bd0d7800
runtime.cc:558] | sysTid=10878 nice=0 cgrp=default sched=0/0 handle=0x72a7f6d4f0
runtime.cc:558] | state=S schedstat=( 6135103 23533387 53 ) utm=0 stm=0 core=6 HZ=100
runtime.cc:558] | stack=0x72a7e72000-0x72a7e74000 stackSize=1009KB
runtime.cc:558] | held mutexes=
05-20 15:03:05.498 10865-10921/? A/aimadiction.co: runtime.cc:558] kernel: (couldn't read /proc/self/task/10878/stack)
runtime.cc:558] native: #00 pc 000000000006f754 /system/lib64/libc.so (__ioctl+4)
runtime.cc:558] native: #1 pc 0000000000029168 /system/lib64/libc.so (ioctl+136)
runtime.cc:558] native: #2 pc 000000000005a844 /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+260)
runtime.cc:558] native: #3 pc 000000000005aa20 /system/lib64/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+24)
runtime.cc:558] native: #4 pc 000000000005b174 /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+60)
runtime.cc:558] native: #5 pc 000000000007bc20 /system/lib64/libbinder.so (android::PoolThread::threadLoop()+24)
runtime.cc:558] native: #6 pc 000000000000fb80 /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+280)
runtime.cc:558] native: #7 pc 00000000000b4ab4 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+140)
runtime.cc:558] native: #8 pc 000000000008319c /system/lib64/libc.so (__pthread_start(void*)+36)
runtime.cc:558] native: #9 pc 00000000000233bc /system/lib64/libc.so (__start_thread+68)
runtime.cc:558] (no managed stack frames)
runtime.cc:558]
runtime.cc:558] "ReferenceQueueDaemon" prio=5 tid=6 Waiting
runtime.cc:558] | group="" sCount=1 dsCount=0 flags=1 obj=0x12c803c0 self=0x72bd1d3000
runtime.cc:558] | sysTid=10874 nice=4 cgrp=default sched=0/0 handle=0x72a84834f0
runtime.cc:558] | state=S schedstat=( 5697549 3952917 40 ) utm=0 stm=0 core=3 HZ=100
runtime.cc:558] | stack=0x72a8380000-0x72a8382000 stackSize=1041KB
runtime.cc:558] | held mutexes=
runtime.cc:558] kernel: (couldn't read /proc/self/task/10874/stack)
runtime.cc:558] native: #00 pc 000000000001ed2c /system/lib64/libc.so (syscall+28)
runtime.cc:558] native: #1 pc 00000000000d7424 /system/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+148)
runtime.cc:558] native: #2 pc 00000000003c2860 /system/lib64/libart.so (art::Monitor::Wait(art::Thread*, long, int, bool, art::ThreadState)+640)
runtime.cc:558] native: #3 pc 00000000003c4324 /system/lib64/libart.so (art::Monitor::Wait(art::Thread*, art::mirror::Object*, long, int, bool, art::ThreadState)+428)
runtime.cc:558] at java.lang.Object.wait(Native method)
runtime.cc:558] - waiting on <0x0ac3537c> (a java.lang.Class<java.lang.ref.ReferenceQueue>)
runtime.cc:558] at java.lang.Daemons$ReferenceQueueDaemon.runInternal(Daemons.java:178)
runtime.cc:558] - locked <0x0ac3537c> (a java.lang.Class<java.lang.ref.ReferenceQueue>)
runtime.cc:558] at java.lang.Daemons$Daemon.run(Daemons.java:103)
runtime.cc:558] at java.lang.Thread.run(Thread.java:764)
runtime.cc:558]
runtime.cc:558] "HeapTaskDaemon" prio=5 tid=7 WaitingForTaskProcessor
runtime.cc:558] | group="" sCount=1 dsCount=0 flags=1 obj=0x12c81a80 self=0x72b4d65400
runtime.cc:558] | sysTid=10877 nice=4 cgrp=default sched=0/0 handle=0x72a81714f0
runtime.cc:558] | state=S schedstat=( 230176351 202096149 374 ) utm=20 stm=1 core=5 HZ=100
runtime.cc:558] | stack=0x72a806e000-0x72a8070000 stackSize=1041KB
runtime.cc:558] | held mutexes=
runtime.cc:558] kernel: (couldn't read /proc/self/task/10877/stack)
runtime.cc:558] native: #00 pc 000000000001ed30 /system/lib64/libc.so (syscall+32)
runtime.cc:558] native: #1 pc 00000000000d7850 /system/lib64/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long, int)+168)
runtime.cc:558] native: #2 pc 000000000022f7ac /system/lib64/libart.so (art::gc::TaskProcessor::GetTask(art::Thread*)+476)
runtime.cc:558] native: #3 pc 0000000000230040 /system/lib64/libart.so (art::gc::TaskProcessor::RunAllTasks(art::Thread*)+96)
runtime.cc:558] at dalvik.system.VMRuntime.runHeapTasks(Native method)
runtime.cc:558] at java.lang.Daemons$HeapTaskDaemon.runInternal(Daemons.java:475)
runtime.cc:558] at java.lang.Daemons$Daemon.run(Daemons.java:103)
runtime.cc:558] at java.lang.Thread.run(Thread.java:764)
runtime.cc:558]
runtime.cc:558] "FinalizerDaemon" prio=5 tid=8 Waiting
runtime.cc:558] | group="" sCount=1 dsCount=0 flags=1 obj=0x12c80448 self=0x72bd1d3c00
runtime.cc:558] | sysTid=10875 nice=4 cgrp=default sched=0/0 handle=0x72a837d4f0
runtime.cc:558] | state=S schedstat=( 5624009 4954376 66 ) utm=0 stm=0 core=3 HZ=100
runtime.cc:558] | stack=0x72a827a000-0x72a827c000 stackSize=1041KB
runtime.cc:558] | held mutexes=
runtime.cc:558] kernel: (couldn't read /proc/self/task/10875/stack)
runtime.cc:558] native: #00 pc 000000000001ed2c /system/lib64/libc.so (syscall+28)
runtime.cc:558] native: #1 pc 00000000000d7424 /system/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+148)
runtime.cc:558] native: #2 pc 00000000003c2860 /system/lib64/libart.so (art::Monitor::Wait(art::Thread*, long, int, bool, art::ThreadState)+640)
runtime.cc:558] native: #3 pc 00000000003c4324 /system/lib64/libart.so (art::Monitor::Wait(art::Thread*, art::mirror::Object*, long, int, bool, art::ThreadState)+428)
runtime.cc:558] at java.lang.Object.wait(Native method)
runtime.cc:558] - waiting on <0x06828405> (a java.lang.Object)
runtime.cc:558] at java.lang.Object.wait(Object.java:422)
runtime.cc:558] at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:188)
runtime.cc:558] - locked <0x06828405> (a java.lang.Object)
runtime.cc:558] at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:209)
runtime.cc:558] at java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:232)
runtime.cc:558] at java.lang.Daemons$Daemon.run(Daemons.java:103)
runtime.cc:558] at java.lang.Thread.run(Thread.java:764)
runtime.cc:558]
runtime.cc:558] "Binder:10865_2" prio=5 tid=9 Native
runtime.cc:558] | group="" sCount=1 dsCount=0 flags=1 obj=0x12c804d0 self=0x72b4df1000
runtime.cc:558] | sysTid=10880 nice=0 cgrp=default sched=0/0 handle=0x72a7e6f4f0
runtime.cc:558] | state=S schedstat=( 3334113 3465106 17 ) utm=0 stm=0 core=4 HZ=100
runtime.cc:558] | stack=0x72a7d74000-0x72a7d76000 stackSize=1009KB
runtime.cc:558] | held mutexes=
runtime.cc:558] kernel: (couldn't read /proc/self/task/10880/stack)
runtime.cc:558] native: #00 pc 000000000006f754 /system/lib64/libc.so (__ioctl+4)
runtime.cc:558] native: #1 pc 0000000000029168 /system/lib64/libc.so (ioctl+136)
runtime.cc:558] native: #2 pc 000000000005a844 /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+260)
runtime.cc:558] native: #3 pc 000000000005aa20 /system/lib64/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+24)
runtime.cc:558] native: #4 pc 000000000005b174 /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+60)
runtime.cc:558] native: #5 pc 000000000007bc20 /system/lib64/libbinder.so (android::PoolThread::threadLoop()+24)
runtime.cc:558] native: #6 pc 000000000000fb80 /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+280)
runtime.cc:558] native: #7 pc 00000000000b4ab4 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+140)
runtime.cc:558] native: #8 pc 000000000008319c /system/lib64/libc.so (__pthread_start(void*)+36)
runtime.cc:558] native: #9 pc 00000000000233bc /system/lib64/libc.so (__start_thread+68)
runtime.cc:558] (no managed stack frames)
runtime.cc:558]
runtime.cc:558] "Binder:10865_3" prio=5 tid=10 Native
runtime.cc:558] | group="" sCount=1 dsCount=0 flags=1 obj=0x12c80558 self=0x72b6638800
runtime.cc:558] | sysTid=10881 nice=0 cgrp=default sched=0/0 handle=0x72a7d714f0
runtime.cc:558] | state=S schedstat=( 9518075 23180364 50 ) utm=0 stm=0 core=7 HZ=100
runtime.cc:558] | stack=0x72a7c76000-0x72a7c78000 stackSize=1009KB
runtime.cc:558] | held mutexes=
runtime.cc:558] kernel: (couldn't read /proc/self/task/10881/stack)
runtime.cc:558] native: #00 pc 000000000006f754 /system/lib64/libc.so (__ioctl+4)
runtime.cc:558] native: #1 pc 0000000000029168 /system/lib64/libc.so (ioctl+136)
runtime.cc:558] native: #2 pc 000000000005a844 /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+260)
runtime.cc:558] native: #3 pc 000000000005aa20 /system/lib64/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+24)
runtime.cc:558] native: #4 pc 000000000005b174 /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+60)
runtime.cc:558] native: #5 pc 000000000007bc20 /system/lib64/libbinder.so (android::PoolThread::threadLoop()+24)
runtime.cc:558] native: #6 pc 000000000000fb80 /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+280)
runtime.cc:558] native: #7 pc 00000000000b4ab4 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+140)
runtime.cc:558] native: #8 pc 000000000008319c /system/lib64/libc.so (__pthread_start(void*)+36)
runtime.cc:558] native: #9 pc 00000000000233bc /system/lib64/libc.so (__start_thread+68)
runtime.cc:558] (no managed stack frames)
runtime.cc:558]
runtime.cc:558] "Profile Saver" prio=5 tid=11 Native
runtime.cc:558] | group="" sCount=1 dsCount=0 flags=1 obj=0x12c805e0 self=0x72b4ce0000
runtime.cc:558] | sysTid=10884 nice=9 cgrp=default sched=0/0 handle=0x72a73644f0
runtime.cc:558] | state=S schedstat=( 6379635 22461406 10 ) utm=0 stm=0 core=4 HZ=100
runtime.cc:558] | stack=0x72a7269000-0x72a726b000 stackSize=1009KB
runtime.cc:558] | held mutexes=
runtime.cc:558] kernel: (couldn't read /proc/self/task/10884/stack)
runtime.cc:558] native: #00 pc 000000000001ed30 /system/lib64/libc.so (syscall+32)
runtime.cc:558] native: #1 pc 00000000000d7850 /system/lib64/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long, int)+168)
runtime.cc:558] native: #2 pc 000000000032625c /system/lib64/libart.so (art::ProfileSaver::Run()+588)
runtime.cc:558] native: #3 pc 00000000003295b4 /system/lib64/libart.so (art::ProfileSaver::RunProfileSaverThread(void*)+92)
runtime.cc:558] native: #4 pc 000000000008319c /system/lib64/libc.so (__pthread_start(void*)+36)
runtime.cc:558] native: #5 pc 00000000000233bc /system/lib64/libc.so (__start_thread+68)
runtime.cc:558] (no managed stack frames)
runtime.cc:558]
runtime.cc:558] "FirebaseInstanceId" prio=5 tid=13 Waiting
runtime.cc:558] | group="" sCount=1 dsCount=0 flags=1 obj=0x12c80668 self=0x72b4cd5400
runtime.cc:558] | sysTid=10893 nice=0 cgrp=default sched=0/0 handle=0x72a70914f0
runtime.cc:558] | state=S schedstat=( 4690625 9972969 21 ) utm=0 stm=0 core=0 HZ=100
runtime.cc:558] | stack=0x72a6f8e000-0x72a6f90000 stackSize=1041KB
runtime.cc:558] | held mutexes=
runtime.cc:558] kernel: (couldn't read /proc/self/task/10893/stack)
runtime.cc:558] native: #00 pc 000000000001ed2c /system/lib64/libc.so (syscall+28)
runtime.cc:558] native: #1 pc 00000000000d7424 /system/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+148)
runtime.cc:558] native: #2 pc 00000000003c2860 /system/lib64/libart.so (art::Monitor::Wait(art::Thread*, long, int, bool, art::ThreadState)+640)
runtime.cc:558] native: #3 pc 00000000003c4324 /system/lib64/libart.so (art::Monitor::Wait(art::Thread*, art::mirror::Object*, long, int, bool, art::ThreadState)+428)
runtime.cc:558] at java.lang.Object.wait(Native method)
runtime.cc:558] - waiting on <0x0aa9ec5a> (a java.lang.Object)
runtime.cc:558] at java.lang.Thread.parkFor$(Thread.java:2137)
runtime.cc:558] - locked <0x0aa9ec5a> (a java.lang.Object)
runtime.cc:558] at sun.misc.Unsafe.park(Unsafe.java:358)
runtime.cc:558] at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
runtime.cc:558] at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
runtime.cc:558] at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1120)
runtime.cc:558] at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:849)
runtime.cc:558] at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
runtime.cc:558] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
runtime.cc:558] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
runtime.cc:558] at com.google.android.gms.common.util.concurrent.zza.run(unavailable:6)
runtime.cc:558] at java.lang.Thread.run(Thread.java:764)
runtime.cc:558]
runtime.cc:558] "queued-work-looper" prio=5 tid=14 Native
runtime.cc:558] | group="" sCount=1 dsCount=0 flags=1 obj=0x12c808d0 self=0x72bd1d7800
runtime.cc:558] | sysTid=10897 nice=-2 cgrp=default sched=0/0 handle=0x72a6bb04f0
runtime.cc:558] | state=S schedstat=( 17764950 12455260 59 ) utm=0 stm=0 core=3 HZ=100
runtime.cc:558] | stack=0x72a6aad000-0x72a6aaf000 stackSize=1041KB
runtime.cc:558] | held mutexes=
runtime.cc:558] kernel: (couldn't read /proc/self/task/10897/stack)
runtime.cc:558] native: #00 pc 000000000006f668 /system/lib64/libc.so (__epoll_pwait+8)
runtime.cc:558] native: #1 pc 00000000000141c0 /system/lib64/libutils.so (android::Looper::pollInner(int)+144)
runtime.cc:558] native: #2 pc 000000000001408c /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+60)
runtime.cc:558] native: #3 pc 0000000000120e8c /system/lib64/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+44)
runtime.cc:558] at android.os.MessageQueue.nativePollOnce(Native method)
runtime.cc:558] at android.os.MessageQueue.next(MessageQueue.java:326)
runtime.cc:558] at android.os.Looper.loop(Looper.java:160)
runtime.cc:558] at android.os.HandlerThread.run(HandlerThread.java:65)
runtime.cc:558]
runtime.cc:558] "firebase-iid-executor" prio=5 tid=15 TimedWaiting
runtime.cc:558] | group="" sCount=1 dsCount=0 flags=1 obj=0x12c809c0 self=0x72bd142400
runtime.cc:558] | sysTid=10898 nice=0 cgrp=default sched=0/0 handle=0x72a6aaa4f0
runtime.cc:558] | state=S schedstat=( 10003595 12753646 22 ) utm=0 stm=0 core=0 HZ=100
runtime.cc:558] | stack=0x72a69a7000-0x72a69a9000 stackSize=1041KB
runtime.cc:558] | held mutexes=
runtime.cc:558] kernel: (couldn't read /proc/self/task/10898/stack)
runtime.cc:558] native: #00 pc 000000000001ed30 /system/lib64/libc.so (syscall+32)
runtime.cc:558] native: #1 pc 00000000000d7850 /system/lib64/libart.so (art::ConditionVariable::TimedWait(art::Thread*, long, int)+168)
runtime.cc:558] native: #2 pc 00000000003c2874 /system/lib64/libart.so (art::Monitor::Wait(art::Thread*, long, int, bool, art::ThreadState)+660)
runtime.cc:558] native: #3 pc 00000000003c4324 /system/lib64/libart.so (art::Monitor::Wait(art::Thread*, art::mirror::Object*, long, int, bool, art::ThreadState)+428)
runtime.cc:558] at java.lang.Object.wait(Native method)
runtime.cc:558] - waiting on <0x07f93e8b> (a java.lang.Object)
runtime.cc:558] at java.lang.Thread.parkFor$(Thread.java:2137)
runtime.cc:558] - locked <0x07f93e8b> (a java.lang.Object)
runtime.cc:558] at sun.misc.Unsafe.park(Unsafe.java:358)
runtime.cc:558] at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
runtime.cc:558] at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2101)
runtime.cc:558] at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
runtime.cc:558] at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
runtime.cc:558] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
runtime.cc:558] | state=S schedstat=( 8065156 20360939 18 ) utm=0 stm=0 core=1 HZ=100
05-20 15:03:05.499 10865-10921/? A/aimadiction.co: runtime.cc:558] | group="" sCount=1 dsCount=0 flags=1 obj=0x12c813d8 self=0x72b4cd4800
runtime.cc:558] kernel: (couldn't read /proc/self/task/10905/stack)
runtime.cc:558] | stack=0x7295ef4000-0x7295ef6000 stackSize=1041KB
05-20 15:03:05.500 10865-10921/? A/aimadiction.co: runtime.cc:558] at com.android.okhttp.ConnectionPool$1.run(ConnectionPool.java:101)
runtime.cc:558]
runtime.cc:558] native: #7 pc 00000000006dd8b0 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so (???)
runtime.cc:558] | held mutexes=
05-20 15:03:05.502 10865-10921/? A/aimadiction.co: runtime.cc:558] | stack=0x7280861000-0x7280863000 stackSize=1041KB
runtime.cc:558] native: #3 pc 0000000000120e8c /system/lib64/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+44)
runtime.cc:558] - locked <0x0fee32d6> (a java.lang.Object)
runtime.cc:558] native: #2 pc 00000000003c2874 /system/lib64/libart.so (art::Monitor::Wait(art::Thread*, long, int, bool, art::ThreadState)+660)
runtime.cc:558] at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
runtime.cc:558]
runtime.cc:558] at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
runtime.cc:558] native: #3 pc 00000000003c4324 /system/lib64/libart.so (art::Monitor::Wait(art::Thread*, art::mirror::Object*, long, int, bool, art::ThreadState)+428)
runtime.cc:558] | group="" sCount=1 dsCount=0 flags=1 obj=0x13bc38c0 self=0x728cbfac00
05-20 15:03:05.503 10865-10921/? A/aimadiction.co: runtime.cc:558] at java.lang.Object.wait(Native method)
runtime.cc:558] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
runtime.cc:558] - waiting on <0x011dc329> (a java.lang.Object)
runtime.cc:558] | group="" sCount=1 dsCount=0 flags=1 obj=0x13bc3bd0 self=0x729056dc00
runtime.cc:558] at java.lang.Object.wait(Native method)
runtime.cc:558] at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
runtime.cc:558] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
runtime.cc:558] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
runtime.cc:558] | group="" sCount=1 dsCount=0 flags=1 obj=0x13bc3ec0 self=0x7290570000
05-20 15:03:05.504 10865-10921/? A/aimadiction.co: runtime.cc:558] | state=S schedstat=( 915419 3957237 20 ) utm=0 stm=0 core=6 HZ=100
runtime.cc:558] at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
runtime.cc:558] at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
runtime.cc:558] at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
runtime.cc:558] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
runtime.cc:558] native: #3 pc 00000000003c4324 /system/lib64/libart.so (art::Monitor::Wait(art::Thread*, art::mirror::Object*, long, int, bool, art::ThreadState)+428)
runtime.cc:558] kernel: (couldn't read /proc/self/task/11201/stack)
runtime.cc:558]
05-20 15:03:05.505 10865-10921/? A/aimadiction.co: runtime.cc:558] native: #3 pc 00000000003c4324 /system/lib64/libart.so (art::Monitor::Wait(art::Thread*, art::mirror::Object*, long, int, bool, art::ThreadState)+428)
runtime.cc:558] kernel: (couldn't read /proc/self/task/11210/stack)
runtime.cc:558] | sysTid=11213 nice=0 cgrp=default sched=0/0 handle=0x727ea294f0
runtime.cc:558] native: #00 pc 000000000001ed30 /system/lib64/libc.so (syscall+32)
runtime.cc:558] at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461)
runtime.cc:558] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
runtime.cc:558]
runtime.cc:558] | sysTid=11251 nice=10 cgrp=default sched=0/0 handle=0x727d4c54f0
runtime.cc:558] native: #00 pc 000000000001ed30 /system/lib64/libc.so (syscall+32)
05-20 15:03:05.506 10865-10921/? A/aimadiction.co: runtime.cc:558] | stack=0x727d2bc000-0x727d2be000 stackSize=1041KB
runtime.cc:558] native: #2 pc 00000000003c2860 /system/lib64/libart.so (art::Monitor::Wait(art::Thread*, long, int, bool, art::ThreadState)+640)
runtime.cc:558] - locked <0x048e6b6a> (a java.lang.Object)
runtime.cc:558] | stack=0x727d1b6000-0x727d1b8000 stackSize=1041KB
runtime.cc:558] - locked <0x035a385b> (a java.lang.Object)
runtime.cc:558] native: #3 pc 00000000003c4324 /system/lib64/libart.so (art::Monitor::Wait(art::Thread*, art::mirror::Object*, long, int, bool, art::ThreadState)+428)
runtime.cc:558] native: #6 pc 00000000006dd8b0 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so (???)
05-20 15:03:05.512 10865-10921/? E/CRASH: signal 6 (SIGABRT), code -6 (?), fault addr --------
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'google/taimen/taimen:9/PQ2A.190205.002/5164942:user/release-keys'
Revision: 'rev_10'
pid: 10865, tid: 10921, name: UnityMain >>> bigtale.claimadiction.com <<<
x0 0000000000000000 x1 0000000000002aa9 x2 0000000000000006 x3 0000000000000008
x4 fefeff723f6ee667 x5 fefeff723f6ee667 x6 fefeff723f6ee667 x7 7f7f7f7f7f7fff7f
x8 0000000000000083 x9 00000073416b8a68 x10 fffffff87ffffbdf x11 0000000000000001
x12 00000072a32dcfa8 x13 ffffffffffffffff x14 ffffffffff000000 x15 ffffffffffffffff
x16 00000073416f12c8 x17 000000734162f2d8 x18 000000003076384c x19 0000000000002a71
x20 0000000000002aa9 x21 0000000000000083 x22 00000072b4c37800 x23 00000072982e3800
x24 0000000000000014 x25 0000000000000012 x26 0000000000000005 x27 00000072bced2bf3
x28 00000072bced2aa7 x29 00000072a32dd500 x30 0000007341623a90
sp 00000072a32dd4c0 pc 0000007341623abc pstate 0000000060000000
backtrace:
05-20 15:03:05.513 10865-10921/? E/CRASH: #00 pc 00000000006365c0 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libunity.so
#1 pc 00000000001404c0 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libunity.so
#2 pc 0000000000000890 [vdso] (__kernel_rt_sigreturn)
#3 pc 0000000000021abc /system/lib64/libc.so (abort+124)
#4 pc 0000000000443d04 /system/lib64/libart.so (art::Runtime::Abort(char const*)+1212)
#5 pc 0000000000008d30 /system/lib64/libbase.so (android::base::LogMessage::~LogMessage()+728)
#6 pc 00000000002c185c /system/lib64/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+1660)
#7 pc 00000000002c19d0 /system/lib64/libart.so (art::JavaVMExt::JniAbortV(char const*, char const*, std::__va_list)+112)
#8 pc 00000000000d65fc /system/lib64/libart.so
#9 pc 00000000000da45c /system/lib64/libart.so
#10 pc 00000000000d8cb8 /system/lib64/libart.so
#11 pc 00000000000c57d8 /system/lib64/libart.so
#12 pc 000000000010f21c /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libFirebaseCppApp-6.0.0.so
#13 pc 0000000000141730 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libFirebaseCppApp-6.0.0.so (firebase::database::internal::DataSnapshotInternal::GetValue() const+36)
#14 pc 000000000013daa8 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libFirebaseCppApp-6.0.0.so (Firebase_Database_CSharp_InternalDataSnapshot_value+20)
#15 pc 0000000001609ac0 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so
#16 pc 00000000016076ec /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so
#17 pc 0000000001607084 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so
#18 pc 000000000086348c /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so
#19 pc 0000000000eed78c /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so
#20 pc 0000000000ee0b84 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so
#21 pc 0000000000eedd7c /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so
#22 pc 0000000000eea890 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so
#23 pc 0000000000eea724 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so
#24 pc 000000000142f938 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so
#25 pc 000000000142f8ac /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so
#26 pc 000000000075c244 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so
#27 pc 00000000006aed34 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libil2cpp.so
#28 pc 00000000004c8818 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libunity.so
#29 pc 00000000004c35cc /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libunity.so
#30 pc 000000000040d1e0 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libunity.so
#31 pc 000000000040d674 /data/app/bigtale.claimadiction.com-vkJFoDZIc4Oc4lbnRvUatA==/lib/arm64/libunity.so
05-20 15:03:05.514 10865-10921/? E/MessageQueue: IdleHandler threw exception
java.lang.Error: signal 6 (SIGABRT), code -6 (?), fault addr --------
Build fingerprint: 'google/taimen/taimen:9/PQ2A.190205.002/5164942:user/release-keys'
Revision: 'rev_10'
pid: 10865, tid: 10921, name: UnityMain >>> bigtale.claimadiction.com <<<
x0 0000000000000000 x1 0000000000002aa9 x2 0000000000000006 x3 0000000000000008
x4 fefeff723f6ee667 x5 fefeff723f6ee667 x6 fefeff723f6ee667 x7 7f7f7f7f7f7fff7f
x8 0000000000000083 x9 00000073416b8a68 x10 fffffff87ffffbdf x11 0000000000000001
x12 00000072a32dcfa8 x13 ffffffffffffffff x14 ffffffffff000000 x15 ffffffffffffffff
x16 00000073416f12c8 x17 000000734162f2d8 x18 000000003076384c x19 0000000000002a71
x20 0000000000002aa9 x21 0000000000000083 x22 00000072b4c37800 x23 00000072982e3800
x24 0000000000000014 x25 0000000000000012 x26 0000000000000005 x27 00000072bced2bf3
x28 00000072bced2aa7 x29 00000072a32dd500 x30 0000007341623a90
sp 00000072a32dd4c0 pc 0000007341623abc pstate 0000000060000000

    at libunity.006365c0(Native Method)
    at libunity.001404c0(Native Method)
    at [vdso].__kernel_rt_sigreturn(__kernel_rt_sigreturn:0)
    at libc.abort(abort:124)
    at libart.art::Runtime::Abort(char const*)(Runtime:1212)
    at libbase.android::base::LogMessage::~LogMessage()(base:728)
    at libart.art::JavaVMExt::JniAbort(char const*, char const*)(JavaVMExt:1660)
    at libart.art::JavaVMExt::JniAbortV(char const*, char const*, std::__va_list)(JavaVMExt:112)
    at libart.000d65fc(Native Method)
    at libart.000da45c(Native Method)
    at libart.000d8cb8(Native Method)
    at libart.000c57d8(Native Method)
    at libFirebaseCppApp-6.0010f21c(Native Method)
    at libFirebaseCppApp-6.firebase::database::internal::DataSnapshotInternal::GetValue() const(firebase:36)
    at libFirebaseCppApp-6.Firebase_Database_CSharp_InternalDataSnapshot_value(Firebase_Database_CSharp_InternalDataSnapshot_value:20)
    at libil2cpp.01609ac0(Native Method)
    at libil2cpp.016076ec(Native Method)
    at libil2cpp.01607084(Native Method)
    at libil2cpp.0086348c(Native Method)
    at libil2cpp.00eed78c(Native Method)
    at libil2cpp.00ee0b84(Native Method)
    at libil2cpp.00eedd7c(Native Method)
    at libil2cpp.00eea890(Native Method)
    at libil2cpp.00eea724(Native Method)
    at libil2cpp.0142f938(Native Method)
    at libil2cpp.0142f8ac(Native Method)
    at libil2cpp.0075c244(Native Method)
    at libil2cpp.006aed34(Native Method)
    at libunity.004c8818(Native Method)
    at libunity.004c35cc(Native Method)
    at libunity.0040d1e0(Native Method)
    at libunity.0040d674(Native Method)
@SrirachaSource SrirachaSource added the new New issue. label May 20, 2019
@chkuang-g
Copy link
Contributor

05-20 15:03:05.401 10865-10921/? A/aimadiction.co: java_vm_ext.cc:542] JNI DETECTED ERROR IN APPLICATION: can't call java.lang.Object com.google.firebase.database.DataSnapshot.getValue() on null object

This means that the C++ DatabaseSnapshot instance had been destroyed when you were accessing it. That is definitely odd. One possibility is that FirebaseDatabase is destroyed at this moment, which would cause all database related object being deleted as well.

I would like to learn two things:

  • Where did you use DatabaseSnapshot.GetValue()? Is it in the continuation function of Query.GetValueAsync() or is it in some event handler like Query.ValueChanged? A snippet of code would be helpful.
  • Could you try to hold a static reference of FirebaseDatabase after FirebaseApp.CheckAndFixDependenciesAsync()? This means that FirebaseDatabase instance would not be destroyed until you switch scene or kill the app.

Thank you
Shawn

@chkuang-g chkuang-g added type: question and removed new New issue. labels May 21, 2019
@SrirachaSource
Copy link
Author

SrirachaSource commented May 22, 2019

Your insight actually led me to the problem which was subtle, so for posterity here are the particulars...

My initialization currently looks likes this, where a static reference is saved.

public static class FirebaseWrapper
{
  public static DependencyStatus s_firebaseDepStatus = DependencyStatus.UnavailableOther;
  static Firebase.FirebaseApp s_firebaseApp;
  static Firebase.Auth.FirebaseAuth s_auth;
  static Firebase.Storage.FirebaseStorage s_storage;
  static Firebase.Database.FirebaseDatabase s_database;
#if UNITY_EDITOR
  public static bool s_tester = true;
#else
    public static bool s_tester = false;
#endif

  public static IEnumerator Init(System.Action callback)
  {
    Debug.Log("Firebase starting");
    Debug.Log("Current Status: " + s_firebaseDepStatus);
    InitializeFirebase();

    while (s_firebaseDepStatus == Firebase.DependencyStatus.UnavailableOther)
    {
      yield return 2;
      Debug.Log("Status After initialization: " + s_firebaseDepStatus);
    }

    if(s_firebaseDepStatus != Firebase.DependencyStatus.Available)
    {
      UnityEngine.Debug.LogError(System.String.Format(
          "Could not resolve all Firebase dependencies: {0}", s_firebaseDepStatus));
    } else
    {
      // Firebase initialized poke all the things we want to use and hold references.
      s_auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
      s_storage = Firebase.Storage.FirebaseStorage.DefaultInstance;
      s_database = Firebase.Database.FirebaseDatabase.DefaultInstance;
    }
    
    if (callback != null) callback();
    yield return 0;
  }

  static void InitializeFirebase()
  {
    Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task =>
    {
      if (task.Result== Firebase.DependencyStatus.Available)
      {
        // Create and hold a reference to your FirebaseApp,
        // where app is a Firebase.FirebaseApp property of your application class.
        s_firebaseApp = Firebase.FirebaseApp.DefaultInstance;

        // Set a flag here to indicate whether Firebase is ready to use by your app.
        s_firebaseDepStatus = DependencyStatus.Available;
        Debug.Log("----FIREBASE DEPENDENCIES RESOLVED----");
      }
      else
      {
        UnityEngine.Debug.LogError(System.String.Format(
          "Could not resolve all Firebase dependencies: {0}", task.Result));
        // Firebase Unity SDK is not safe to use here.
      }
    }, TaskScheduler.FromCurrentSynchronizationContext());
  }
 }

This is the first call in the Start() method of my initial Load Scene.

The problem I found was in fetching ranked players which looked like this

  public class GetNRankingsStartingFromBucket : Command
  {
    DatabaseReference m_scoreRef;
    int m_earningsWeek = 1;
    int m_bucket;
    int m_minRankings = 600;

    delegate void AccumulateData(DataSnapshot snapshot);
    AccumulateData m_recurse;

    public GetNRankingsStartingFromBucket(int earningsWeek, int bucket, EventHandler callback)
    {
      m_bucket = bucket;
      m_earningsWeek = earningsWeek;
      m_commandType = CommandType.kGetAllScores;
      m_commandCallback += callback;
    }

    public void StartFetching()
    {
      var bucketLists = new Dictionary<int, List<DataSnapshot>>(); **<-- the problem is actually here**
      int totalCount = 0;

      // Handle data return, retry if needed to accumulate more entries.
      m_recurse = (DataSnapshot snapshot) =>
      {
        if(snapshot != null)
        {
          if(!bucketLists.ContainsKey(m_bucket))
          {
            bucketLists.Add(m_bucket, new List<DataSnapshot>());
          }
          bucketLists [m_bucket].AddRange(snapshot.Children);
          totalCount += (int)snapshot.ChildrenCount;
          //Debug.Log("Entries " + entries.Count);
        }
        CommandFinished();

        if (totalCount < m_minRankings && (--m_bucket > 6))
        {
          Fetch(m_recurse);
        }
        else
        {
          // Send buckets to caller
          OnCommandFinishedCallback(bucketLists );
        }
      };

      Fetch(m_recurse);
    }

    private void Fetch(AccumulateData recurse)
    {
      Debug.Log("fetching " + kEarningsRootPath + "/week_" + m_earningsWeek + "/" + kPreview + m_bucket);
      m_scoreRef = s_databaseRoot.Child(kEarningsRootPath + "/week_" + m_earningsWeek + "/" + kPreview + m_bucket);

      m_scoreRef.GetValueAsync().ContinueWith(task =>
      {
        if (task.IsFaulted)
        {
          // Handle the error...
          OnCommandFailedCallback(kCmdName + " Failed getting data");
        }
        else if (task.IsCompleted)
        {
          DataSnapshot snapshot = task.Result;

          // Do something with snapshot...
          recurse(snapshot);
        }
      }, TaskScheduler.FromCurrentSynchronizationContext());
    }
  }

It seems in IL2CPP land garbage collection is more aggressive and the collection of snapshots was being destroyed before the caller could use them.

I changed to this:

  public class GetNRankingsStartingFromBucket : Command
  {
    DatabaseReference m_scoreRef;
    int m_earningsWeek = 1;
    int m_bucket;
    int m_minRankings = 600;
    Dictionary<int, List<DataSnapshot>> m_bucketLists;

    delegate void AccumulateData(DataSnapshot snapshot);
    AccumulateData m_recurse;

    public GetNRankingsStartingFromBucket(int earningsWeek, int bucket, EventHandler callback)
    {
      m_bucket = bucket;
      m_earningsWeek = earningsWeek;
      m_commandType = CommandType.kGetAllScores;
      m_commandCallback += callback;
    }

    public void StartFetching()
    {
      m_bucketLists = new Dictionary<int, List<DataSnapshot>>(); **<-- save reference to collection**
      int totalCount = 0;

      // Handle data return, retry if needed to accumulate more entries.
      m_recurse = (DataSnapshot snapshot) =>
      {
        if(snapshot != null)
        {
          if(!m_bucketLists.ContainsKey(m_bucket))
          {
            m_bucketLists.Add(m_bucket, new List<DataSnapshot>());
          }
          m_bucketLists[m_bucket].AddRange(snapshot.Children);
          totalCount += (int)snapshot.ChildrenCount;
          //Debug.Log("Entries " + entries.Count);
        }
        CommandFinished();

        if (totalCount < m_minRankings && (--m_bucket > 6))
        {
          Fetch(m_recurse);
        }
        else
        {
          OnCommandFinishedCallback(m_bucketLists);
        }
      };

      Fetch(m_recurse);
    }

    private void Fetch(AccumulateData recurse)
    {
      Debug.Log("fetching " + kEarningsRootPath + "/week_" + m_earningsWeek + "/" + kPreview + m_bucket);
      m_scoreRef = s_databaseRoot.Child(kEarningsRootPath + "/week_" + m_earningsWeek + "/" + kPreview + m_bucket);

      m_scoreRef.GetValueAsync().ContinueWith(task =>
      {
        if (task.IsFaulted)
        {
          // Handle the error...
          OnCommandFailedCallback(kCmdName + " Failed getting data");
        }
        else if (task.IsCompleted)
        {
          DataSnapshot snapshot = task.Result;

          // Do something with snapshot...
          recurse(snapshot);
        }
      }, TaskScheduler.FromCurrentSynchronizationContext());
    }
  }

Bingo bongo problem solved.

@chkuang-g
Copy link
Contributor

chkuang-g commented May 22, 2019

I see.

We did notice that IL2CPP optimization may deference and finalize the local variables from the earlier recursion level.

One way to prevent it is to keep a reference in the class level, similar to what you did. Another way is to suppress GC using global::System.GC.KeepAlive().

@SrirachaSource
Copy link
Author

I'll keep that in mind, thanks!

@SrirachaSource
Copy link
Author

Ok this started crashing again with can't call java.lang.Object com.google.firebase.database.DataSnapshot.getValue() on null object the crash logs varied a bit but behind every crash was a getValue() being called on something null. This time I just re-wrote the recursive call because apparently something in firebase and or IL2CPP can handle it, does firebase test for this scenario? Anyways after re-writing the issue again resolved.

@SrirachaSource
Copy link
Author

Removing recursive calls to databaseref.getValueAsync() resolved the crash.

@firebase firebase locked and limited conversation to collaborators Oct 23, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants