OneSignal-Android-SDK icon indicating copy to clipboard operation
OneSignal-Android-SDK copied to clipboard

[Bug]: ANR because of initializeFromJson

Open ayushi-sk opened this issue 1 year ago • 2 comments

What happened?

com.onesignal.common.modeling.Model.initializeFromJson ANR triggered by slow operations in main thread

Steps to reproduce?

Initialise OneSignal on android 11, 12 and 13

What did you expect to happen?

No ANR please

OneSignal Android SDK version

5.1.2 and all others

Android version

13, 12, 11

Specific Android models

No response

Relevant log output

at kotlin.collections.ArraysKt___ArraysKt.firstOrNull(ArraysKt___Arrays.kt:1282)
       at com.onesignal.common.modeling.Model.initializeFromJson(Model.kt:98)
       at com.onesignal.common.modeling.SimpleModelStore.create(SimpleModelStore.kt:30)
       at com.onesignal.common.modeling.ModelStore.load(ModelStore.kt:162)
       at com.onesignal.common.modeling.SimpleModelStore.<init>(SimpleModelStore.kt:23)
       at com.onesignal.session.internal.session.SessionModelStore.<init>(SessionModelStore.kt:8)
       at java.lang.reflect.Constructor.newInstance0(Native method)
       at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
       at com.onesignal.common.services.ServiceRegistrationReflection.resolve(ServiceRegistration.kt:89)
       at com.onesignal.common.services.ServiceProvider.getServiceOrNull(ServiceProvider.kt:79)
       at com.onesignal.common.services.ServiceProvider.getService(ServiceProvider.kt:67)
       at com.onesignal.common.services.ServiceProvider.getService$com_onesignal_core(ServiceProvider.kt:39)
       at com.onesignal.internal.OneSignalImp.initWithContext(OneSignalImp.kt:200)
       at com.onesignal.OneSignal.initWithContext(OneSignal.kt:208)
       at com.onesignal.notifications.receivers.FCMBroadcastReceiver.onReceive(FCMBroadcastReceiver.kt:26)

Code of Conduct

  • [X] I agree to follow this project's Code of Conduct

ayushi-sk avatar Feb 19 '24 04:02 ayushi-sk

@ayushi-sk Hello thank you for reaching out. Is this happening on versions newer than 5.1.2? Are you able to reproduce this issue?

emawby avatar Feb 23 '24 19:02 emawby

Couldn't reproduce it -> happening on all device Yes, it is in 5.1.6

ayushi-sk avatar Apr 07 '24 06:04 ayushi-sk

updated to com.onesignal:OneSignal:5.1.9 also appeared

#00 pc 0x4bca80 libart.so (art::DumpNativeStack + 108) (BuildId: 735f12f804f88d62a2cb437261076ff7)
#01 pc 0x4b0dd4 libart.so (art::Thread::DumpStack const + 388) (BuildId: 735f12f804f88d62a2cb437261076ff7)
#02 pc 0x4b0714 libart.so (art::DumpCheckpoint::Run + 164) (BuildId: 735f12f804f88d62a2cb437261076ff7)
#03 pc 0x3c177c libart.so (art::Thread::RunCheckpointFunction + 148) (BuildId: 735f12f804f88d62a2cb437261076ff7)
#04 pc 0x5aea28 libart.so (artTestSuspendFromCode + 232) (BuildId: 735f12f804f88d62a2cb437261076ff7)
#05 pc 0x35521c libart.so (art_quick_test_suspend + 156) (BuildId: 735f12f804f88d62a2cb437261076ff7)
       at java.lang.reflect.Executable.getMethodNameInternal(Native method)
       at java.lang.reflect.Method.getName(Method.java:115)
       at java.lang.reflect.Method$1.compare(Method.java:72)
       at java.lang.reflect.Method$1.compare(Method.java:67)
       at java.util.TimSort.mergeHi(TimSort.java:841)
       at java.util.TimSort.mergeAt(TimSort.java:520)
       at java.util.TimSort.mergeForceCollapse(TimSort.java:461)
       at java.util.TimSort.sort(TimSort.java:254)
       at java.util.Arrays.sort(Arrays.java:1344)
       at java.util.ArrayList.sort(ArrayList.java:1738)
       at java.util.Collections.sort(Collections.java:210)
       at libcore.util.CollectionUtils.removeDuplicates(CollectionUtils.java:86)
       at java.lang.Class.getMethods(Class.java:2226)
       at com.onesignal.common.modeling.Model.initializeFromJson(Model.kt:98)
       at com.onesignal.core.internal.operations.impl.OperationModelStore.create(OperationModelStore.kt:68)
       at com.onesignal.core.internal.operations.impl.OperationModelStore.create(OperationModelStore.kt:30)
       at com.onesignal.common.modeling.ModelStore.load(ModelStore.kt:162)
       at com.onesignal.core.internal.operations.impl.OperationModelStore.<init>(OperationModelStore.kt:32)
       at java.lang.reflect.Constructor.newInstance0(Native method)
       at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
       at com.onesignal.common.services.ServiceRegistrationReflection.resolve(ServiceRegistration.kt:89)
       at com.onesignal.common.services.ServiceProvider.getServiceOrNull(ServiceProvider.kt:79)
       at com.onesignal.common.services.ServiceProvider.getService(ServiceProvider.kt:67)
       at com.onesignal.common.services.ServiceRegistrationReflection.resolve(ServiceRegistration.kt:82)
       at com.onesignal.common.services.ServiceProvider.getServiceOrNull(ServiceProvider.kt:79)
       at com.onesignal.common.services.ServiceProvider.getService(ServiceProvider.kt:67)
       at com.onesignal.internal.OneSignalImp.initWithContext(OneSignalImp.kt:527)
       at com.onesignal.OneSignal.initWithContext(OneSignal.kt:135)
       at org.xxxxxxxxxxxxxxxxxxx.initOneSignal(XXXXXXApplication.java:121)
       at org.xxxxxxxxxxxxxxxxxxx.onCreate(XXXXXXApplication.java:53)
       at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1266)
       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7411)
       at android.app.ActivityThread.-$$Nest$mhandleBindApplication(unavailable)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2410)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loopOnce(Looper.java:223)
       at android.os.Looper.loop(Looper.java:324)
       at android.app.ActivityThread.main(ActivityThread.java:8630)
       at java.lang.reflect.Method.invoke(Native method)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:582)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1061)

Android version 14 ~1%,13 ~31% , 12 ~31%, 11 ~37%

launch from background 97% (data from firebase Crashlytics dashboard)

gitByEOS avatar May 09 '24 02:05 gitByEOS

@ayushi-sk @gitByEOS Thank you for sharing the valuable info with us! We have released Android SDK 5.1.12 in an attempt to resolve the specific ANR issues. Please give it a try and let us know if the ANR still persists. https://github.com/OneSignal/OneSignal-Android-SDK/releases/tag/5.1.12

jinliu9508 avatar May 09 '24 14:05 jinliu9508