Signal 6 (SIGABRT) after upgrading to il2cpp

Hello.
After upgrading to il2cpp arm64 we get multiple crashes in google play developer console.
It reproduces on these versions of fmod (we checked it on a production apk):

  • 2.00.06
  • 2.00.05
  • 1.10.10

Blockquote
java.lang.Error: signal 6 (SIGABRT), code -6 (?), fault addr --------
Build fingerprint: ‘HUAWEI/POT-LX1/HWPOT-H:9/HUAWEIPOT-L21/293C432:user/release-keys’
Revision: ‘0’
pid: 13579, tid: 14083, name: FMOD mixer thre >>> com.company.name <<<
x0 0000000000000000 x1 0000000000003703 x2 0000000000000006 x3 0000000000000008
x4 0000000000000000 x5 0000000000000000 x6 0000000000000000 x7 0000000000000000
x8 0000000000000083 x9 afe5d9409b216a48 x10 0000000000000000 x11 fffffffc7ffffbdf
x12 0000000000000001 x13 ffffffffffffffff x14 0000000000000000 x15 aaaaaaaaaaaaaaab
x16 0000007f0ea332c0 x17 0000007f0e971e34 x18 0000007e6d9c6700 x19 000000000000350b
x20 0000000000003703 x21 0000007e6d668000 x22 0000007e87a0ed40 x23 000000000142ff80
x24 00000000000001c0 x25 0000007e286c0000 x26 0000007e6d9f8838 x27 0000000000000380
x28 0000000000000000 x29 0000007e87995ce0 x30 0000007f0e966960
sp 0000007e87995ca0 pc 0000007f0e966988 pstate 0000000060000000
at [vdso].(
at libc.abort (abort:112)
at libil2cpp._ZN9__gnu_cxx27__verbose_terminate_handlerEv (_ZN9__gnu_cxx27__verbose_terminate_handlerEv:396)
at libil2cpp._ZN10__cxxabiv111__terminateEPFvvE (_ZN10__cxxabiv111__terminateEPFvvE:8)
at libil2cpp._ZSt9terminatev (_ZSt9terminatev:12)
at libil2cpp.__cxa_throw (__cxa_throw:136)
at libil2cpp. (0)
at libil2cpp. (0)
at libil2cpp. (0)
at libfmod. (0)

Are you able to reproduce this at all? Preferably using the FMOD logging libraries.

No, I see it only in developer console. And this is a problem.
It reproduces in production on huawei devices.
Number of crashes is x10 in comparison with our stable build for arm-v7.

Are you able to get any logging from these crashes, that may contain FMOD errors or warnings?

Hi. I got the logs

/*****
some loading sounds logs here
*****/

05:15:24 D/Unity line 3590: Suspending output.
05:15:35 D/Unity line 3621: Resuming output.
05:15:56 D/Unity line 3590: Suspending output.
05:16:00 D/Unity line 3621: Resuming output.
05:16:07 D/Unity line 3590: Suspending output.
05:16:11 D/Unity line 3621: Resuming output.
05:23:46 D/Unity line 1828: Buffer starvation detected, requested 1536 bytes, 1024 / 32768 bytes available.
05:23:46 D/Unity line 1834: Increasing block count to 5.
05:23:46 D/Unity line 1828: Buffer starvation detected, requested 1536 bytes, 0 / 32768 bytes available.
05:23:46 D/Unity line 1834: Increasing block count to 6.
05:23:46 D/Unity line 1828: Buffer starvation detected, requested 1536 bytes, 0 / 32768 bytes available.
05:23:46 D/Unity line 1834: Increasing block count to 7.
05:23:46 D/Unity line 1828: Buffer starvation detected, requested 1536 bytes, 0 / 32768 bytes available.
05:23:46 D/Unity line 1834: Increasing block count to 8.
05:23:46 D/Unity line 1828: Buffer starvation detected, requested 1536 bytes, 0 / 32768 bytes available.
05:23:46 D/Unity line 1828: Buffer starvation detected, requested 1536 bytes, 0 / 32768 bytes available.
05:23:46 D/Unity line 1828: Buffer starvation detected, requested 1536 bytes, 0 / 32768 bytes available.
05:23:46 D/Unity line 1828: Buffer starvation detected, requested 1536 bytes, 0 / 32768 bytes available.
05:23:46 D/Unity line 1828: Buffer starvation detected, requested 1536 bytes, 0 / 32768 bytes available.
05:23:46 D/Unity line 1828: Buffer starvation detected, requested 1536 bytes, 0 / 32768 bytes available.
05:23:46 D/Unity line 1828: Buffer starvation detected, requested 1536 bytes, 0 / 32768 bytes available.
05:23:46 D/Unity line 1828: Buffer starvation detected, requested 1536 bytes, 0 / 32768 bytes available.
05:23:46 D/Unity line 1828: Buffer starvation detected, requested 1536 bytes, 0 / 32768 bytes available.
05:23:46 D/Unity line 1828: Buffer starvation detected, requested 1536 bytes, 0 / 32768 bytes available.
05:23:46 D/Unity line 1828: Buffer starvation detected, requested 1536 bytes, 0 / 32768 bytes available.
05:23:46 D/Unity line 1828: Buffer starvation detected, requested 1536 bytes, 0 / 32768 bytes available.
05:23:46 D/Unity line 1828: Buffer starvation detected, requested 1024 bytes, 0 / 32768 bytes available.
05:23:46 D/Unity line 1828: Buffer starvation detected, requested 512 bytes, 0 / 32768 bytes available.
05:23:46 D/Unity line 1828: Buffer starvation detected, requested 1536 bytes, 0 / 32768 bytes available.
05:23:46 D/Unity line 1828: Buffer starvation detected, requested 1536 bytes, 0 / 32768 bytes available.

/******
and so on until it crashes
*******/

This is a symptom of an issue, the mixer isn’t being fed enough data to produce sound consistently. This is likely due to high CPU usage, any lagging/freezing, or something to do with the audio multiple suspend/resume calls.

Thanks. Got it.
Do you have any ideas why this is happenning only on 64 bit?
On 32bit version it works good.

Unfortunately, not without knowing more on what/why it’s crashing.