adjust / corona_sdk

This is the Corona SDK of
http://www.adjust.com
6 stars 7 forks source link

at plugin.adjust.LuaLoader$1.executeUsing (LuaLoader.java:245) #13

Closed usmanat77sparx closed 3 years ago

usmanat77sparx commented 4 years ago

Hello,

Can you please check these crashes on Android due to usage of this code? https://forums.coronalabs.com/topic/77022-lots-of-crashes-due-to-comnaefjnalua/

uerceg commented 4 years ago

Hi @usmanat77sparx

Can you always reproduce these and if yes, what are the steps?

Cheers

ycandrewkao commented 4 years ago

Hi Uerceg - It appears that in addition to causing crashes, it's also causing ANRs. https://forums.coronalabs.com/topic/77023-screen-off-anr-issues/

I don't know if there is a way to reproduce it. But we see these crash traces and ANR traces from the Google Play Vital Console. In other words, these crashes and ANRs are being encountered in production.

uerceg commented 4 years ago

I see. Then just to try to see if you're using features which are touching this code path - are you using any of the following SDK features: attribution callback, session/event tracking success/failure callback, deferred deep linking callback or maybe getting Google advertising ID in your app?

Shchvova commented 4 years ago

Hello. I’m principal @coronalsbs delevoper. Users was complaining about plugin crashes with trace back to adjust event dispatcher. Probably events are submitted after luaState was destroyed. See fix in second commit of #14

uerceg commented 4 years ago

Hi @Shchvova

And thank you for the PR! Saw that you said that https://github.com/adjust/corona_sdk/commit/25716714d0d275828329d9ad588ae63e360fa281 should do the trick. We'll test it and add to our next SDK update.

Most probably we'll release an update beginning next week. Will keep you guys posted in here.

Thanks for your contribution one more time.

Cheers

Shchvova commented 4 years ago

To use all my changes you would have to download latest Corona. It makes life much easier. Corona is now aar itself.

ycandrewkao commented 4 years ago

Thank you so much to both of you for jumping on this issue. Please do let us know when the fixes are in so we can give it a try on our end.

On Thu, Jan 23, 2020 at 7:36 PM Vlad Svoka notifications@github.com wrote:

To use all my changes you would have to download latest Corona. It makes life much easier. Corona is now aar itself.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/adjust/corona_sdk/issues/13?email_source=notifications&email_token=ACD6MOWSKD32S537SWGG7SDQ7JO5RA5CNFSM4KK33J6KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEJZUATA#issuecomment-577978444, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACD6MOVSZOXDAX43TNQZEGDQ7JO5RANCNFSM4KK33J6A .

usmanat77sparx commented 4 years ago

Hi @uerceg, any update on this? Is repo updated with these changes?

ycandrewkao commented 4 years ago

@uerceg I also want to check in to see what the status on this is? We are triggering Google's ANR/Crash alarms due to these issues, and it's dramatically impacted our organic downloads.

uerceg commented 4 years ago

@usmanat77sparx @ycandrewkao We have started working on this and will try to make plugin update with @Shchvova's suggestions. Will keep you posted.

uerceg commented 4 years ago

@Shchvova We are actually willing to give your full PR a shot and see if we can make it work. We have updated Corona to version 2018.3326 and from what I can see, seems like you have moved away from Gradle to Gradle KTS which makes all of our build scripts temporarily useless, so trying to work around that first. Regardless of what I try, seems like I can't get rid of Corona Native was not set-up properly. Launch '/Applications/Corona/Native/Setup Corona Native.app'. error message. I am pretty sure I ran it, symbolic link was created and I also decided to go step by step with Android Studio and opening plugin/android project to build things from there first, but I am always getting this exception thrown:

val setupNativeApp = File("/Applications").listFiles { f ->
    f.isDirectory && f.name.startsWith("Corona")
}?.max()?.let {
    "${it.absolutePath}/Native/Setup Corona Native.app"
} ?: "Native/Setup Corona Native.app"
throw InvalidUserDataException("Corona Native was not set-up properly. Launch '$setupNativeApp'.")

Any idea how to solve it?

Cheers

Shchvova commented 4 years ago

Running Setup Corona Native from /Applications/Corona-xxx/Native should help. Also, I strongly recommend to get latest daily build for native. It had much improved since 3326, which is not AAR yet.

EDIT: we didnt' have a release in a while, our bad, but 3326 is very old and doesn't even support x64 and targets obsolete SDK. 2020.3569 is recommended

uerceg commented 4 years ago

Ah, that was the confusion part. I thought latest official one, didn't understand we need to try daily build. Will give recommended one a shot, thanks!

uerceg commented 4 years ago

@Shchvova Any idea how to work around this part?

Screenshot 2020-02-06 at 22 34 55
Shchvova commented 4 years ago

Delete symlink following that path. Then it will work. Or you can manually create that symlink to Native directory

Shchvova commented 4 years ago
rm ~/Library/Application\ Support/Corona/Native
ln -s /Applications/Corona-3573/Native  ~/Library/Application\ Support/Corona/Native

And I recommend to download 3573... There was some issues in 3570 :(

uerceg commented 4 years ago

Thanks for the advice, will try the new suggested version and manual symlinking in case on new suggested version it doesn't automatically get done once app is run.

uerceg commented 4 years ago

@Shchvova Just to update in here that suggested 3573 worked well. Symbolic links were created by running app binary w/o any problems so no need for manual linking.

At this moment, I managed to run state of things from your PR with build scripts on our end being adjusted to Gradle KTS state of things and I see that I'm managing to run the example app with our Corona plugin built in this way. \o/

I think I have everything I need right now to do the plugin update and cleanup on the road and hopefully release new version soon.

Just one last question - currently I modified scripts so that they still build plugin.adjust.jar like we used to do it (I'm extracting this from newly made plugin-release.aar in this Corona version). Is this the recommended way to go nowdays or are users expecting these days plugin for Android to be AAR?

Cheers

Shchvova commented 4 years ago

Jar is easiest, but AAR works as well. This way you can include manifest entries inside of it. I noticed that your plugin is not submitted to the store, this would make Corona workflow much easier. Latest version of corona support gradle dependencies as well. But anyway. There is nothing wrong with extracting classes.jar and naming it plugin.adjust.jar. This is what I do too.

uerceg commented 4 years ago

Sounds lovely. Thanks! Submission of our plugin to the store has been asked several times in the past and we do have this in our TODO list, unfortunately currently with not such a high priority. If it's not to much of an effort, maybe we can even try to push it to be done soon-ish after we make sure that this upcoming update actually works well for people who reported the issue.

ycandrewkao commented 4 years ago

+1 I do second @Shchvova recommendation. Since we avoid Corona Native builds, we've actually basically had to do the same thing to turn the SDK into a Corona plugin (that we self-host) in order to build.

@uerceg regardless, first things first. Please let us know when you have this ready. We really appreciate it!

uerceg commented 4 years ago

@Shchvova 👋 One more. Getting this with new Xcode example app project from your PR:

Screenshot 2020-02-09 at 00 20 53

Any idea how to solve this?

uerceg commented 4 years ago

Ah, sorry for the ping, just realised that your daily builds are not naming entry in /Applications folder as Corona, but Corona-XXXX. Altering path in .pbxproj file to:

path = ../../../../../../Applications/Corona-3573/Native/Corona/ios/resource;

did the trick.

uerceg commented 4 years ago

@usmanat77sparx @ycandrewkao I've just released v4.20.0 (https://github.com/adjust/corona_sdk/releases/tag/v4.20.0) which contains all the changes suggested by @Shchvova (big thank you one more time) and should hopefully solve the issue.

Please give it a shot and let us know if it solved the issue.

Cheers!

ycandrewkao commented 4 years ago

Thanks! We really appreciate it.

On Sat, Feb 8, 2020 at 4:17 PM Uglješa Erceg notifications@github.com wrote:

@usmanat77sparx https://github.com/usmanat77sparx @ycandrewkao https://github.com/ycandrewkao I've just released v4.20.0 ( https://github.com/adjust/corona_sdk/releases/tag/v4.20.0) which contains all the changes suggested by @Shchvova https://github.com/Shchvova (big thank you one more time) and should hopefully solve the issue.

Please give it a shot and let us know if it solved the issue.

Cheers!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/adjust/corona_sdk/issues/13?email_source=notifications&email_token=ACD6MOXVARONMNLCJIFWTULRB5DRXA5CNFSM4KK33J6KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELF67CY#issuecomment-583790475, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACD6MOT7QXUBBLOPFU7OCBDRB5DRXANCNFSM4KK33J6A .

usmanat77sparx commented 4 years ago

@uerceg Thanks for the release.

We packed it into self hosted plugin and release the APK but we still has ANRs on google. Please check stack trace.

Stack Trace.txt

uerceg commented 4 years ago

@usmanat77sparx Can you please point me in this stack trace to place which says about Adjust plugin being responsible for ANR?

From what I see, seems like your main thread is being blocked with this reason:

- waiting to lock <0x0ce51b91> (a com.ansca.corona.Controller) held by thread 14

And this is thread 14:

"GLThread 3330" tid=14 Native 
"GLThread 3330" prio=5 tid=14 Native
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x13f42700 self=0x753d834000
  | sysTid=23074 nice=0 cgrp=default sched=0/0 handle=0x752ade64f0
  | state=S schedstat=( 550539852 12211387 269 ) utm=46 stm=8 core=4 HZ=100
  | stack=0x752ace3000-0x752ace5000 stackSize=1041KB
  | held mutexes=
  #00  pc 0000000000071c84  /system/lib64/libc.so (read+4)
  #01  pc 000000000007d0bc  /system/lib64/libc.so (__sread+44)
  #02  pc 000000000007d01c  /system/lib64/libc.so (__srefill+268)
  #03  pc 0000000000080d58  /system/lib64/libc.so (fread_unlocked+200)
  #04  pc 0000000000080c48  /system/lib64/libc.so (fread+72)
  #05  pc 0000000000037fb0  /system/lib64/libc.so (android_getaddrinfofornetcontext+2720)
  #06  pc 00000000000374e8  /system/lib64/libc.so (android_getaddrinfofornet+56)
  #07  pc 0000000000086f40  /data/app/com.sx.wonsterwords-e1Osd8RmKOl5rSYUSg9kJQ==/split_config.arm64_v8a.apk (???)
  #08  pc 00000000000897b8  /data/app/com.sx.wonsterwords-e1Osd8RmKOl5rSYUSg9kJQ==/split_config.arm64_v8a.apk (???)
  #09  pc 0000000000013c4c  /data/app/com.sx.wonsterwords-e1Osd8RmKOl5rSYUSg9kJQ==/split_config.arm64_v8a.apk (???)
  #10  pc 00000000000288f4  /data/app/com.sx.wonsterwords-e1Osd8RmKOl5rSYUSg9kJQ==/split_config.arm64_v8a.apk (???)
  #11  pc 0000000000014238  /data/app/com.sx.wonsterwords-e1Osd8RmKOl5rSYUSg9kJQ==/split_config.arm64_v8a.apk (???)
  #12  pc 00000000000135ac  /data/app/com.sx.wonsterwords-e1Osd8RmKOl5rSYUSg9kJQ==/split_config.arm64_v8a.apk (???)
  #13  pc 0000000000014560  /data/app/com.sx.wonsterwords-e1Osd8RmKOl5rSYUSg9kJQ==/split_config.arm64_v8a.apk (???)
  #14  pc 000000000000a810  /data/app/com.sx.wonsterwords-e1Osd8RmKOl5rSYUSg9kJQ==/split_config.arm64_v8a.apk (lua_pcall+164)
  #15  pc 00000000000e1cbc  /data/app/com.sx.wonsterwords-e1Osd8RmKOl5rSYUSg9kJQ==/split_config.arm64_v8a.apk (???)
  #16  pc 0000000000113074  /data/app/com.sx.wonsterwords-e1Osd8RmKOl5rSYUSg9kJQ==/split_config.arm64_v8a.apk (???)
  #17  pc 0000000000115eb4  /data/app/com.sx.wonsterwords-e1Osd8RmKOl5rSYUSg9kJQ==/split_config.arm64_v8a.apk (???)
  #18  pc 0000000000115200  /data/app/com.sx.wonsterwords-e1Osd8RmKOl5rSYUSg9kJQ==/split_config.arm64_v8a.apk (???)
  at com.ansca.corona.JavaToNativeShim.nativeRender (Native method)
  at com.ansca.corona.JavaToNativeShim.render (JavaToNativeShim.java:220)
  at com.ansca.corona.Controller.updateRuntimeState (Controller.java:382)
- locked <0x0ce51b91> (a com.ansca.corona.Controller)
  at com.ansca.corona.graphics.opengl.CoronaGLSurfaceView$CoronaRenderer.onDrawFrame (CoronaGLSurfaceView.java:450)
  at com.ansca.corona.graphics.opengl.GLSurfaceView$GLThread.guardedRun (GLSurfaceView.java:1625)
  at com.ansca.corona.graphics.opengl.GLSurfaceView$GLThread.run (GLSurfaceView.java:1380)

TBH, not really sure what might be causing this (maybe @Shchvova has an idea?) and maybe I'm missing something in this log, but in case I'm not looking at it properly, please lemme know where to look for information that Adjust plugin is blocking your main thread.

usmanat77sparx commented 4 years ago

@uerceg Please search "adjust" in file for that.

adjust found
uerceg commented 4 years ago

I saw that, but those are just names of threads we create. And they exist in this file together with bunch of other threads which are running.

How is any of those blocking main thread, can you explain the connection? From what I wrote above, seems to me that some other thread is actually responsible for blocking the main one. Am I wrong and missed something?

uerceg commented 4 years ago

@usmanat77sparx Any update on this one maybe?

ycandrewkao commented 4 years ago

@uerceg We tried to look into this, but it's coming from Corona SDK code that we are simply not familiar with enough to sort out. @Shchvova Vlad can you help look into this? We would super appreciate it!

ycandrewkao commented 4 years ago

We are stilling experiencing lots of ANRs (not crashes). Many of the threads are related to Adjust. Can you take a look?

https://forums.coronalabs.com/topic/77307-lots-of-anrs-broadcast-of-intent-actandroidintentactionscreen-off-flg0x58200010/

uerceg commented 4 years ago

Hi @ycandrewkao

What I see in logs from that URL from above seems to me pretty similar to what is posted in stack trace text file in this comment.

And what I wrote in this comment is pretty much my current understanding of things I'm seeing in the stack trace.

Can you elaborate and explain stack trace to me so that I can understand how does the Adjust SDK cause app to be unresponsive?

ycandrewkao commented 4 years ago

@uerceg Unfortunately, I am simply not qualified to be able to answer your question, other than the fact that it seems several of the threads seems to be related to adjust. In generaly, Corona has been pretty stable for us, so we suspect it's one of the plugins.... and I don't see any of our other plugins in the thread. @Shchvova Vlad can you help?

uerceg commented 4 years ago

Thanks for reply, I am also really willing to understand what is actually causing this and it is pretty hard to figure out since on our end we're not really able to reproduce it. In case @Shchvova might know what's causing this, would be more than willing to hear. 🙏

uerceg commented 3 years ago

Hey guys,

Is this still happening with latest version(s) of the SDK?

ycandrewkao commented 3 years ago

Hi Ugi - Thanks for checking in. I am not too sure..

Usman - can you chime in? I can't figure out which version of Adjust SDK we are on now in Android. I did a quick look in our crash log and don't really see this particular crash in the last 7 days..

On Tue, Sep 29, 2020 at 3:33 AM Uglješa Erceg notifications@github.com wrote:

Hey guys,

Is this still happening with latest version(s) of the SDK?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/adjust/corona_sdk/issues/13#issuecomment-700616414, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACD6MOR3CAU5YL3CES7PUW3SIGZXLANCNFSM4KK33J6A .

uerceg commented 3 years ago

Great, thanks for the update. Let’s wait for Usman’s comment as well before figuring out if issue should be closed or not.

ycandrewkao commented 3 years ago

Hi Ugi,

Sorry for the delay. I discussed this with Usman today, and it seems like the issue has been resolved to the best that we can tell.

Thank you again for checking in. Will let you know if anything else comes up!

Best, Andrew

On Tue, Sep 29, 2020 at 11:22 AM Uglješa Erceg notifications@github.com wrote:

Great, thanks for the update. Let’s wait for Usman’s comment as well before figuring out if issue should be closed or not.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/adjust/corona_sdk/issues/13#issuecomment-700895697, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACD6MOS2KWTVAU5BY4ESRL3SIIQWBANCNFSM4KK33J6A .

uerceg commented 3 years ago

Amazing, thanks for letting us know and feel free to comment/reopen if needed. Cheers!

ycandrewkao commented 3 years ago

Thanks again!

Also, the changes you made to the latest Adjust SDK for iOS14 seems to got rid of the crash. I just want to make sure if we incorporate the plugin, it won't trigger the app transparency framework? We would like to update to that version on iOS, but also want to make sure we can continue to use IDFA where possible without triggering the IDFA prompt.

On Fri, Oct 2, 2020 at 10:44 AM Uglješa Erceg notifications@github.com wrote:

Closed #13 https://github.com/adjust/corona_sdk/issues/13.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/adjust/corona_sdk/issues/13#event-3835006757, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACD6MOR33ETH7QPMRCDCPXTSIYGOBANCNFSM4KK33J6A .

uerceg commented 3 years ago

No worries, SDK is not triggering the dialog by itself. We just offer API for users to do so via our SDK and it will work only if ATT framework is linked to your app + if you actually order to our SDK to show it with making an actual method call.

So all good from that side, no need to worry.