ANR: com.facebook.react.bridge.ModuleHolder.getModule

Viewed 69

Recently we have started getting ANR specifically on android 7/ 7.1 / 7.1.1. The stacktrace goes like this

Input dispatching timed out (Waiting because no window has focus but there is a focused application that may eventually add a window when it finishes starting up.)

"main" prio=5 tid=1 Waiting

at java.lang.Object.wait! (Native method)
  at com.facebook.react.bridge.ModuleHolder.getModule (ModuleHolder.java:14)
  at com.facebook.react.bridge.NativeModuleRegistry.getModule (NativeModuleRegistry.java:11)
  at com.facebook.react.bridge.CatalystInstanceImpl.getNativeModule (CatalystInstanceImpl.java:5)
  at com.facebook.react.bridge.CatalystInstanceImpl.getNativeModule (CatalystInstanceImpl.java:1)
  at com.facebook.internal.instrument.InstrumentUtility.getUIManager (InstrumentUtility.java:4)
  at com.facebook.react.ReactInstanceManager.attachRootViewToInstance (ReactInstanceManager.java:4)
  at com.facebook.react.ReactRootView.attachToReactInstanceManager (ReactRootView.java:12)
  at com.facebook.react.ReactRootView.startReactApplication (ReactRootView.java:9)
  at com.myapp.ReactActivity.onCreate (ReactActivity.java:191)
  at android.app.Activity.performCreate (Activity.java:6845)
  at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1119)
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2700)
  at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2808)
  at android.app.ActivityThread.-wrap12 (ActivityThread.java)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1541)
  at android.os.Handler.dispatchMessage (Handler.java:102)
  at android.os.Looper.loop (Looper.java:165)
  at android.app.ActivityThread.main (ActivityThread.java:6375)
  at java.lang.reflect.Method.invoke! (Native method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:912)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:802)

"Jit thread pool worker thread 0" prio=5 tid=2 Native (still starting up)
  #00  pc 000000000001c0ac  /system/lib64/libc.so (syscall+28)
  #00  pc 00000000000e6dd4  /system/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+160)
  #00  pc 0000000000463cc4  /system/lib64/libart.so (art::ThreadPool::GetTask(art::Thread*)+252)
  #00  pc 0000000000463180  /system/lib64/libart.so (art::ThreadPoolWorker::Run()+124)
  #00  pc 0000000000462ab0  /system/lib64/libart.so (art::ThreadPoolWorker::Callback(void*)+116)
  #00  pc 0000000000068440  /system/lib64/libc.so (__pthread_start(void*)+196)
  #00  pc 000000000001dd70  /system/lib64/libc.so (__start_thread+16)

"HeapTaskDaemon" daemon prio=5 tid=7 Blocked

  #00  pc 000000000001beec  /system/lib64/libc.so (syscall+28)
  #00  pc 00000000000e8148  /system/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+160)
  #00  pc 0000000000240ee8  /system/lib64/libart.so (art::gc::TaskProcessor::GetTask(art::Thread*)+360)
  #00  pc 00000000002417c4  /system/lib64/libart.so (art::gc::TaskProcessor::RunAllTasks(art::Thread*)+92)
  #00  pc 00000000001e5530  /system/framework/arm64/boot-core-libart.oat (Java_dalvik_system_VMRuntime_runHeapTasks__+124)
  at dalvik.system.VMRuntime.runHeapTasks (Native method)
  at java.lang.Daemons$HeapTaskDaemon.run (Daemons.java:435)
  at java.lang.Thread.run (Thread.java:760)


....Many more thread in WAITING state

Output of react-native info

System:
OS: macOS 11.4
CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @2.60GHz
Memory: 115.29 MB / 16.00 GB
Shell: 5.8 - /bin/zsh Binaries:
Node: 14.5.0 - ~/.nvm/versions/node/v14.5.0/bin/node
Yarn: 1.22.10 - /usr/local/bin/yarn
npm: 6.14.5 - ~/.nvm/versions/node/v14.5.0/bin/npm Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs: iOS SDK: Platforms: DriverKit 21.0.1, iOS 15.0, macOS 12.0, tvOS 15.0, watchO 8.0 IDEs: Xcode: 13.1/13A1030d - /usr/bin/xcodebuild
npmPackages:
react: 16.9.0 => 16.9.0

react-native: 0.61.4 => 0.61.4
npmGlobalPackages:
react-native-cli: 2.0.1

Steps to reproduce Unable to reproduce but from what I understand. This happens sometimes only on android 7. When calling rootView.startReactApplication(...) We have two different React Instance manager initialised using createReactContextInBackground() on Application onCreate for two different features. Second one was introduced in this new release.

0 Answers
Related