Facebook Audience 6.2.0 /apex/com.android.art/lib64/libart.so (art::OatHeader::IsDebuggable() const+124) on Android 11

Viewed 1494

After updating to Facebook Audience 6.2.0 from 5.11.0 on an Android app with target SDK 29 I'm seeing a considerable amount of crash reports on a small percentage of Android 11 devices. According to a user that is having this crash and has reinstalled the app several times to test, the crash occurs a few seconds after startup being able to see a loading screen the first time and then immediately after that first time.

  #00  pc 00000000004dcd84  /apex/com.android.art/lib64/libart.so (art::OatHeader::IsDebuggable() const+124)
  #00  pc 00000000004dd3f4  /apex/com.android.art/lib64/libart.so (art::OatFileBase::ShouldUnquickenVDex() const+56)
  #00  pc 00000000004dd594  /apex/com.android.art/lib64/libart.so (art::OatFileBase::LoadVdex(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*)+80)
  #00  pc 00000000004e1594  /apex/com.android.art/lib64/libart.so (art::OatFile::Open(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool, bool, art::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const>, art::MemMap*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*)+468)
  #00  pc 00000000004e7d78  /apex/com.android.art/lib64/libart.so (art::OatFileAssistant::OatFileInfo::GetFile()+696)
  #00  pc 00000000004e7038  /apex/com.android.art/lib64/libart.so (art::OatFileAssistant::OatFileInfo::Status()+76)
  #00  pc 00000000004e7458  /apex/com.android.art/lib64/libart.so (art::OatFileAssistant::OatFileInfo::ReleaseFileForUse()+56)
  #00  pc 00000000004ec944  /apex/com.android.art/lib64/libart.so (art::OatFileManager::OpenDexFilesFromOat(char const*, _jobject*, _jobjectArray*, art::OatFile const**, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*)+292)
  #00  pc 00000000004a0718  /apex/com.android.art/lib64/libart.so (art::DexFile_openDexFileNative(_JNIEnv*, _jclass*, _jstring*, _jstring*, int, _jobject*, _jobjectArray*)+144)
  #00  pc 0000000000010a88  /apex/com.android.art/javalib/arm64/boot-core-libart.oat (art_jni_trampoline+264)
  #00  pc 000000000001f584  /apex/com.android.art/javalib/arm64/boot-core-libart.oat (dalvik.system.DexFile.openDexFile+244)
  #00  pc 00000000000215d4  /apex/com.android.art/javalib/arm64/boot-core-libart.oat (dalvik.system.DexPathList.makeDexElements+1348)
  #00  pc 0000000000020b78  /apex/com.android.art/javalib/arm64/boot-core-libart.oat (dalvik.system.DexPathList.<init>+664)
  #00  pc 000000000001d934  /apex/com.android.art/javalib/arm64/boot-core-libart.oat (dalvik.system.BaseDexClassLoader.<init>+228)
  #00  pc 0000000000057f90  /apex/com.android.art/javalib/arm64/boot-core-libart.oat (dalvik.system.DexClassLoader.<init>+80)
  #00  pc 0000000000133564  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548)
  #00  pc 00000000001a8a78  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
  #00  pc 000000000031830c  /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376)
  #00  pc 000000000030e638  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+996)
  #00  pc 000000000067d794  /apex/com.android.art/lib64/libart.so (MterpInvokeDirect+576)
  #00  pc 000000000012d914  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_direct+20)
  #00  pc 00000000001cdc00  /data/app/~~USEx1p9tx0-5YVxYZoz1fQ==/com.mycompany.mygame-OdPieLgz_xrP3A7H8t3zyw==/oat/arm64/base.vdex (com.facebook.ads.internal.dynamicloading.DynamicLoaderFactory.makeLegacyAdsSdkClassLoader+160)
  #00  pc 000000000067e314  /apex/com.android.art/lib64/libart.so (MterpInvokeStatic+1224)
  #00  pc 000000000012d994  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_static+20)
  #00  pc 00000000001cdd48  /data/app/~~USEx1p9tx0-5YVxYZoz1fQ==/com.mycompany.mygame-OdPieLgz_xrP3A7H8t3zyw==/oat/arm64/base.vdex (com.facebook.ads.internal.dynamicloading.DynamicLoaderFactory.makeAdsSdkClassLoader+8)
  #00  pc 000000000067e314  /apex/com.android.art/lib64/libart.so (MterpInvokeStatic+1224)
  #00  pc 000000000012d994  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_static+20)
  #00  pc 00000000001cd96e  /data/app/~~USEx1p9tx0-5YVxYZoz1fQ==/com.mycompany.mygame-OdPieLgz_xrP3A7H8t3zyw==/oat/arm64/base.vdex (com.facebook.ads.internal.dynamicloading.DynamicLoaderFactory.doMakeLoader+70)
  #00  pc 000000000067e314  /apex/com.android.art/lib64/libart.so (MterpInvokeStatic+1224)
  #00  pc 000000000012d994  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_static+20)
  #00  pc 00000000001cd90c  /data/app/~~USEx1p9tx0-5YVxYZoz1fQ==/com.mycompany.mygame-OdPieLgz_xrP3A7H8t3zyw==/oat/arm64/base.vdex (com.facebook.ads.internal.dynamicloading.DynamicLoaderFactory.access$000)
  #00  pc 000000000067e314  /apex/com.android.art/lib64/libart.so (MterpInvokeStatic+1224)
  #00  pc 000000000012d994  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_static+20)
  #00  pc 00000000001cd6fa  /data/app/~~USEx1p9tx0-5YVxYZoz1fQ==/com.mycompany.mygame-OdPieLgz_xrP3A7H8t3zyw==/oat/arm64/base.vdex (com.facebook.ads.internal.dynamicloading.DynamicLoaderFactory$a.run+34)
  #00  pc 0000000000305c34  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16249794272548105830)+268)
  #00  pc 0000000000669e20  /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+780)
  #00  pc 000000000013cff8  /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88)
  #00  pc 000000000015ab08  /apex/com.android.art/javalib/arm64/boot.oat (java.lang.Thread.run+72)
  #00  pc 0000000000133564  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548)
  #00  pc 00000000001a8a78  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
  #00  pc 0000000000553890  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+460)
  #00  pc 00000000005a2c2c  /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1308)
  #00  pc 00000000000af888  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64)
  #00  pc 000000000004fe08  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

This is different from the /apex/com.android.runtime/lib64/bionic/libc.so (abort+160) issue (/apex/com.android.runtime/lib64/bionic/libc.so (abort+160), abort crash in Android 10 devices) which still rarely occurs on 6.2.0.

3 Answers

According to the change log, version 6.2.1 (published on 03Feb2021) of the Android Facebook Audience Network SDK fixes this bug.

I also meet this crash, but not found how to solve it!

Feedback from FB tech support: "It looks like this issue was flagged to us previously, and our team has been working to resolve it. It should be fixed when SDK 6.3.0 becomes available." Unfortunately, no timeline was given for version 6.3.0.

Related