Anyone else seeing a surge in Signal 11 crashes on Android again in 2020?

I think we’ve all seen the Signal 11 crashes in libcorona.so on Android.

After some recent updates by Corona, they seemed to go away for the most part. Somehow they are mysteriously back for us starting a couple of weeks ago. Our only real changes were switching to Corona-3569 and adding GameAnalytics (as a passive plugin with no calls other than init).

We made some audio changes to try to fix the problem (removing some onComplete calls per a post on the Forums) but that didn’t seem to help. Before we start to dig deeper (roll back to older code & Corona versions, bug reports. etc.) we wanted to see if anyone else out there is experiencing similar problems.

Can you post somewhere the crash logs and your build settings? I don’t use GameAnalytics. What I have seen recently is that if any plugin uses open ssl and the app goes into the background while it is using it, it will crash. Not every time and I can’t reproduce it but in the crash logs you will see libcorona.so crash but you will also see the other open ssl thread being hung. I am using 3575. In my last few updates I have been combining the calls to gamespark to reduce the number of calls and that has helped almost eliminate the crash. If I had to guess Game Analytics is sending an event on session end or suspend that might be causing the issue.

Just my 2 cents to get you started, I might be completely wrong.

Hi agramonte,

Thanks for the reply. We disabled GameAnalytics and it didn’t change anything.

The crash logs looks similar to the one seen here:

https://forums.coronalabs.com/topic/75369-unknown-error-logs-in-google-play-about-so/

and here…

https://forums.coronalabs.com/topic/74619-crash-signal-11-sigsegv-code-1-segv-maperr-in-libalmixerso/

Basically the usual Signal 11 crashes coming back.

Example 1:

Samsung Galaxy Tab A (2018, 10.5) (gta2xlwifi), 2816MB RAM, Android 9

backtrace:

 #00  pc 000000000007f0a6  /data/app/com.xyz-vK5VXVV0H_lBFTGJtBGA2Q==/lib/arm/libcorona.so

 #01  pc 000000000007f167  /data/app/com.xyz-vK5VXVV0H_lBFTGJtBGA2Q==/lib/arm/libcorona.so

 #02  pc 000000000000a273  /data/app/com.xyz-vK5VXVV0H_lBFTGJtBGA2Q==/lib/arm/liblua.so

 #03  pc 00000000000151db  /data/app/com.xyz-vK5VXVV0H_lBFTGJtBGA2Q==/lib/arm/liblua.so

 #04  pc 000000000000a53d  /data/app/com.xyz-vK5VXVV0H_lBFTGJtBGA2Q==/lib/arm/liblua.so

 #05  pc 0000000000009f1f  /data/app/com.xyz-vK5VXVV0H_lBFTGJtBGA2Q==/lib/arm/liblua.so

 #06  pc 000000000000a6dd  /data/app/com.xyz-vK5VXVV0H_lBFTGJtBGA2Q==/lib/arm/liblua.so

 #07  pc 0000000000005671  /data/app/com.xyz-vK5VXVV0H_lBFTGJtBGA2Q==/lib/arm/liblua.so (lua_pcall+76)

 #08  pc 0000000000071b93  /data/app/com.xyz-vK5VXVV0H_lBFTGJtBGA2Q==/lib/arm/libcorona.so

 #09  pc 0000000000090ef5  /data/app/com.xyz-vK5VXVV0H_lBFTGJtBGA2Q==/lib/arm/libcorona.so

 #10  pc 000000000001d07f  /data/app/com.xyz-vK5VXVV0H_lBFTGJtBGA2Q==/oat/arm/base.odex (offset 0x1d000) (com.ansca.corona.JavaToNativeShim.nativeAbortShowingImageProvider [DEDUPED]+102)

 #11  pc 0000000000013667  /dev/ashmem/dalvik-jit-code-cache_14384_14384 (deleted)

https://forums.coronalabs.com/topic/75369-unknown-error-logs-in-google-play-about-so/

Example 2:

Samsung Galaxy Tab E 9.6 (gtelwifiue), 1536MB RAM, Android 7.1

Same as above ending with…

  #10  pc 00000000005ef825  /data/app/com.xyz-2/oat/arm/base.odex (offset 0x5d2000)

https://forums.coronalabs.com/topic/74619-crash-signal-11-sigsegv-code-1-segv-maperr-in-libalmixerso/

Ok. Does your app have write external storage permission? If you do, remove the permission (on newer android devices) and run a test on your app where the external storage might be called (saving an image or loading a video ad). See if it crashes.

Investigating a bit further, this may an issue with AppLovin video ads. Why are so many of these 3rd party plugins so buggy?

Thanks for the suggestion. We will try a build with external storage permission disabled

For anybody else looking at this in the future. In the trace you provided there is a call to “abortShowingImageProvider”. The only place in the source code that I could find that call was related to external storage:

else if (android.os.Build.VERSION.SDK\_INT \>= 23) { // The failure was because we don't have permission to write to external storage. // Let the C-side know that we're aborting the Camera Window for Images! JavaToNativeShim.abortShowingImageProvider(fCoronaRuntime); }

It actually looks more like the majority (or all) of the crashes may be happening during failed app bootup.

Also, it looks like most of the ad plugins automatically add

“android.permission.WRITE_EXTERNAL_STORAGE”

https://docs.coronalabs.com/plugin/applovin/

We’re going to switch back to Vungle to test if it makes a difference. Unfortunately, the number of ANRs was quite high last time we tried Vungle on Android.

Anyone else experiencing similar problems? Can anyone recommend a somewhat stable ad network with decent eCPMS?

If someone from Corona sees this and wants to comment that would be great.

Thanks in advance

Anyone? Anyone?

Is it possible that removing SSL will help?

Hi, not sure if anyone is following this topic but we did get some more info from a recent crash report.

We googled "system/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+52)"

from the log below and discovered a link from a Google investigation:

https://issuetracker.google.com/issues/148521210

From the link: "it looks as if these could be data objects which are serialized/deserialized using some framework which could depend on reflection. If that is the case make sure to have sufficient keep rules for these classes/methods/fields.

Hopefully this info is helpful?

Here’s the partial log from the crash “signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)”:

  #10  pc 000000000005807f  /data/app/com.xyz-7YCqPnxgxxTd1l_SYhdNYg==/oat/arm/base.odex (offset 0x58000) (com.ansca.corona.JavaToNativeShim.nativeAbortShowingImageProvider [DEDUPED]+102)

  #11  pc 000000000006f2e5  /data/app/com.xyz-7YCqPnxgxxTd1l_SYhdNYg==/oat/arm/base.odex (offset 0x58000) (com.ansca.corona.Controller.updateRuntimeState+1060)

  #12  pc 00000000000837f9  /data/app/com.xyz-7YCqPnxgxxTd1l_SYhdNYg==/oat/arm/base.odex (offset 0x58000) (com.ansca.corona.graphics.opengl.GLSurfaceView$GLThread.guardedRun+2416)

  #13  pc 00000000000842c3  /data/app/com.xyz-7YCqPnxgxxTd1l_SYhdNYg==/oat/arm/base.odex (offset 0x58000) (com.ansca.corona.graphics.opengl.GLSurfaceView$GLThread.run+170)

  #14  pc 0000000000410175  /system/lib/libart.so (art_quick_invoke_stub_internal+68)

  #15  pc 00000000003e96c1  /system/lib/libart.so (art_quick_invoke_stub+224)

  #16  pc 00000000000a1415  /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+136)

  #17  pc 0000000000348f95  /system/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+52)

  #18  pc 0000000000349ced  /system/lib/libart.so (art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue*)+320)

  #19  pc 000000000036b4db  /system/lib/libart.so (art::thread::CreateCallback(void*)+866)

  #20  pc 0000000000073a39  /system/lib/libc.so (__pthread_start(void*)+22)

  #21  pc 000000000001e179  /system/lib/libc.so (__start_thread+24)

Anyone? Anyone?

Is it possible that removing SSL will help?

Hi, not sure if anyone is following this topic but we did get some more info from a recent crash report.

We googled "system/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+52)"

from the log below and discovered a link from a Google investigation:

https://issuetracker.google.com/issues/148521210

From the link: "it looks as if these could be data objects which are serialized/deserialized using some framework which could depend on reflection. If that is the case make sure to have sufficient keep rules for these classes/methods/fields.

Hopefully this info is helpful?

Here’s the partial log from the crash “signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)”:

  #10  pc 000000000005807f  /data/app/com.xyz-7YCqPnxgxxTd1l_SYhdNYg==/oat/arm/base.odex (offset 0x58000) (com.ansca.corona.JavaToNativeShim.nativeAbortShowingImageProvider [DEDUPED]+102)

  #11  pc 000000000006f2e5  /data/app/com.xyz-7YCqPnxgxxTd1l_SYhdNYg==/oat/arm/base.odex (offset 0x58000) (com.ansca.corona.Controller.updateRuntimeState+1060)

  #12  pc 00000000000837f9  /data/app/com.xyz-7YCqPnxgxxTd1l_SYhdNYg==/oat/arm/base.odex (offset 0x58000) (com.ansca.corona.graphics.opengl.GLSurfaceView$GLThread.guardedRun+2416)

  #13  pc 00000000000842c3  /data/app/com.xyz-7YCqPnxgxxTd1l_SYhdNYg==/oat/arm/base.odex (offset 0x58000) (com.ansca.corona.graphics.opengl.GLSurfaceView$GLThread.run+170)

  #14  pc 0000000000410175  /system/lib/libart.so (art_quick_invoke_stub_internal+68)

  #15  pc 00000000003e96c1  /system/lib/libart.so (art_quick_invoke_stub+224)

  #16  pc 00000000000a1415  /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+136)

  #17  pc 0000000000348f95  /system/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+52)

  #18  pc 0000000000349ced  /system/lib/libart.so (art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue*)+320)

  #19  pc 000000000036b4db  /system/lib/libart.so (art::thread::CreateCallback(void*)+866)

  #20  pc 0000000000073a39  /system/lib/libc.so (__pthread_start(void*)+22)

  #21  pc 000000000001e179  /system/lib/libc.so (__start_thread+24)

@rogkem Did you ever manage to find out what the cause of your error was?