firebase / firebase/firebase-unity-sdk
[Bug] SIGSEGV - Pure virtual function called!
- Dominant language
- C#
- Stars
- 320
- Forks
- 60
- Avg merge
- 13h 32m
- Merged PRs (30d)
- 13
Description
### Description
We have caught the following issue with Firebase 11.9.0
In the Thread message in Google Play there is the message "Pure virtual function called!"
### Reproducing the issue
This does not seem to affect all users so far it seems to affect lower end Android devices like the Lenovo TB310FU with Android 13 (SDK 33)
### Firebase Unity SDK Version
11.9.0
### Unity editor version
2021.3.33f1
### Installation Method
.unitypackage
### Problematic Firebase Component(s)
Database
### Other Firebase Component(s) in use
Analytics, Authentication, Crashlytics, DynamicLinks, Remote Config, Storage
### Additional SDKs you are using
_No response_
### Targeted Platform(s)
Android
### Unity editor platform
Mac
### Scripting Runtime
IL2CPP
### Release Distribution Type
Pre-built SDK from https://firebase.google.com/download/unity
### Relevant Log Output
```shell
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 1881 >>> com.theapp <<<
backtrace:
#00 pc 0x0000000000053324 /apex/com.android.runtime/lib64/bionic/libc.so (abort+180)
#01 pc 0x000000000033b1cc /data/app/~~Xzi9mZ4hZj3vG7OLKnwmew==/com.theapp-fth9NRBb3RJsQYuigNJB5A==/lib/arm64/libFirebaseCppApp-11_9_0.so (abort_message+236)
#02 pc 0x0000000000337f3c /data/app/~~Xzi9mZ4hZj3vG7OLKnwmew==/com.theapp-fth9NRBb3RJsQYuigNJB5A==/lib/arm64/libFirebaseCppApp-11_9_0.so (__cxa_pure_virtual+16)
#03 pc 0x00000000002e6d7c /data/app/~~Xzi9mZ4hZj3vG7OLKnwmew==/com.theapp-fth9NRBb3RJsQYuigNJB5A==/lib/arm64/libFirebaseCppApp-11_9_0.so (firebase::storage::internal::ControllerInternal::CppStorageListenerCallback(_JNIEnv*, _jclass*, long, long, _jobject*, unsigned char)+328)
#04 pc 0x0000000000351e30 /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+144)
#05 pc 0x00000000005b980c /apex/com.android.art/lib64/libart.so (nterp_helper+3852)
#06 pc 0x00000000000009fe /data/user/0/com.theapp/cache/storage_resources_lib.jar (com.google.firebase.storage.internal.cpp.CppStorageListener.onProgress+46)
#07 pc 0x00000000005ba674 /apex/com.android.art/lib64/libart.so (nterp_helper+7540)
#08 pc 0x00000000002da364 /data/app/~~Xzi9mZ4hZj3vG7OLKnwmew==/com.theapp-fth9NRBb3RJsQYuigNJB5A==/oat/arm64/base.vdex (com.google.firebase.storage.j.a+8)
#09 pc 0x00000000005ba674 /apex/com.android.art/lib64/libart.so (nterp_helper+7540)
#10 pc 0x00000000002dcd28 /data/app/~~Xzi9mZ4hZj3vG7OLKnwmew==/com.theapp-fth9NRBb3RJsQYuigNJB5A==/oat/arm64/base.vdex (com.google.firebase.storage.TaskListenerImpl.g+4)
#11 pc 0x00000000005b9854 /apex/com.android.art/lib64/libart.so (nterp_helper+3924)
#12 pc 0x00000000002dcba8 /data/app/~~Xzi9mZ4hZj3vG7OLKnwmew==/com.theapp-fth9NRBb3RJsQYuigNJB5A==/oat/arm64/base.vdex (com.google.firebase.storage.TaskListenerImpl.b)
#13 pc 0x00000000005b8934 /apex/com.android.art/lib64/libart.so (nterp_helper+52)
#14 pc 0x00000000002dcaf0 /data/app/~~Xzi9mZ4hZj3vG7OLKnwmew==/com.theapp-fth9NRBb3RJsQYuigNJB5A==/oat/arm64/base.vdex (com.google.firebase.storage.x.run+12)
#15 pc 0x0000000000ab5e1c /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Handler.dispatchMessage+76)
#16 pc 0x0000000000ab9ac8 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Looper.loopOnce+1000)
#17 pc 0x0000000000ab962c /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Looper.loop+1132)
#18 pc 0x0000000000864ec4 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.app.ActivityThread.main+2404)
#19 pc 0x000000000033b680 /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640)
#20 pc 0x000000000037cb18 /apex/com.android.art/lib64/libart.so (_jobject* art::InvokeMethod<(art::PointerSize)8>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+1556)
#21 pc 0x000000000037c4f4 /apex/com.android.art/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*) (.__uniq.165753521025965369065708152063621506277)+32)
#22 pc 0x00000000003846a8 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (art_jni_trampoline+120)
#23 pc 0x0000000000dd32b8 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+136)
#24 pc 0x0000000000ddef98 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (com.android.internal.os.ZygoteInit.main+3672)
#25 pc 0x000000000033b680 /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640)
#26 pc 0x00000000004e2a90 /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+728)
#27 pc 0x000000000057aa68 /apex/com.android.art/lib64/libart.so (art::JNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+156)
#28 pc 0x00000000000bdcd8 /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+120)
#29 pc 0x00000000000c9c94 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector const&, bool)+948)
#30 pc 0x0000000000002560 /system/bin/app_process64 (main+1280)
#31 pc 0x000000000004b630 /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+96)
```
### If using CocoaPods for Apple platforms, the project's Podfile.lock
Expand Podfile.lock snippet
```yml
👀 Replace this line with the contents of your Podfile.lock!
```
Contributor guide
Research direction
Start by reproducing on the Lenovo TB310FU or a comparable Android 13 device using Unity 2021.3.33f1, IL2CPP, and Firebase Unity SDK 11.9.0. Inspect the stack entry points firebase::storage::internal::ControllerInternal::CppStorageListenerCallback and CppStorageListener.onProgress in libFirebaseCppApp-11_9_0.so. Done means the storage operation no longer reaches __cxa_pure_virtual and the regression is covered by an appropriate test.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, cpp, unity
- Domain
- mobile-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100