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.0react-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.