Bug #1108
closedCrash on Android 6.0
100%
Description
Almost all tests are failed on Android 6.0 due to changes in cleanup code in Bionic:
2015-11-06 15:35:05.506 UTC: > ## ADBRUNNER.63392 EXEC: /Volumes/android/ndk/out/tests/gcc5/device/crystax-test-executables/target+PIE/libs/x86/dynamic-executable 2015-11-06 15:35:05.506 UTC: RUN device test [crystax-test-executables] gcc5 +PIE: x86 [1/2] android-23 'emulator-5554' 2015-11-06 15:35:05.730 UTC: > ## ADBRUNNER.63392 [emulator-5554] LOCK (attempt #1): /Volumes/android/ndk/out/tests/gcc5/device/crystax-test-executables/target+PIE/libs/x86/dynamic-executable 2015-11-06 15:35:05.730 UTC: > ## ADBRUNNER.63392 [emulator-5554] START (attempt #1): /Volumes/android/ndk/out/tests/gcc5/device/crystax-test-executables/target+PIE/libs/x86/dynamic-executable 2015-11-06 15:35:05.731 UTC: > ## ADBRUNNER.63392 [emulator-5554] RUN: mkdir -p /data/local/tmp/ndk-tests/x86/tmp && mkdir -p /data/local/tmp/ndk-tests/x86/2619196d-c6e5-4a3d-a60d-e780246f62a0 && mkdir -p /data/local/tmp/ndk-tests/x86/2619196d-c6e5-4a3d-a60d-e780246f62a0/bin && mkdir -p /data/local/tmp/ndk-tests/x86/2619196d-c6e5-4a3d-a60d-e780246f62a0/data 2015-11-06 15:35:05.769 UTC: > ## ADBRUNNER.63392 [emulator-5554] PUSH: /Volumes/android/ndk/out/tests/gcc5/device/crystax-test-executables/target+PIE/libs/x86/dynamic-executable -> /data/local/tmp/ndk-tests/x86/2619196d-c6e5-4a3d-a60d-e780246f62a0/bin/exe22ab2429afe64691adb2e82368252344 2015-11-06 15:35:07.205 UTC: > ## ADBRUNNER.63392 [emulator-5554] 3 KB/s (5204 bytes in 1.409s) 2015-11-06 15:35:07.206 UTC: > ## ADBRUNNER.63392 [emulator-5554] RUN: chmod 0755 /data/local/tmp/ndk-tests/x86/2619196d-c6e5-4a3d-a60d-e780246f62a0/bin/exe22ab2429afe64691adb2e82368252344 2015-11-06 15:35:07.236 UTC: > ## ADBRUNNER.63392 [emulator-5554] PUSH: /Volumes/android/ndk/out/tests/gcc5/device/crystax-test-executables/target+PIE/libs/x86/libcrystax.so -> /data/local/tmp/ndk-tests/x86/2619196d-c6e5-4a3d-a60d-e780246f62a0/bin/libcrystax.so 2015-11-06 15:35:07.862 UTC: > ## ADBRUNNER.63392 [emulator-5554] 1439 KB/s (887920 bytes in 0.602s) 2015-11-06 15:35:07.863 UTC: > ## ADBRUNNER.63392 [emulator-5554] RUN: chmod 0755 /data/local/tmp/ndk-tests/x86/2619196d-c6e5-4a3d-a60d-e780246f62a0/bin/libcrystax.so 2015-11-06 15:35:07.891 UTC: > ## ADBRUNNER.63392 [emulator-5554] RUN: log LOGCAT-TAG-3ac80d57c899445e8980d38ff73cc286 && cd /data/local/tmp/ndk-tests/x86/2619196d-c6e5-4a3d-a60d-e780246f62a0/bin && LD_LIBRARY_PATH=/data/local/tmp/ndk-tests/x86/2619196d-c6e5-4a3d-a60d-e780246f62a0/bin TMPDIR=/data/local/tmp/ndk-tests/x86/tmp ./exe22ab2429afe64691adb2e82368252344 2015-11-06 15:35:08.089 UTC: > ## ADBRUNNER.63392 [emulator-5554] > Aborted 2015-11-06 15:35:08.090 UTC: > ## ADBRUNNER.63392 [emulator-5554] RUN [$?=134]: log LOGCAT-TAG-3ac80d57c899445e8980d38ff73cc286 && cd /data/local/tmp/ndk-tests/x86/2619196d-c6e5-4a3d-a60d-e780246f62a0/bin && LD_LIBRARY_PATH=/data/local/tmp/ndk-tests/x86/2619196d-c6e5-4a3d-a60d-e780246f62a0/bin TMPDIR=/data/local/tmp/ndk-tests/x86/tmp ./exe22ab2429afe64691adb2e82368252344 2015-11-06 15:35:08.091 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 2015-11-06 15:35:08.091 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 2015-11-06 15:35:08.091 UTC: > ## ADBRUNNER.63392 [emulator-5554] * === BEGIN OF LAUNCHER PARAMETERS === 2015-11-06 15:35:08.091 UTC: > ## ADBRUNNER.63392 [emulator-5554] * ARGV: /Volumes/android/ndk/out/tests/gcc5/device/crystax-test-executables/target+PIE/libs/x86/dynamic-executable 2015-11-06 15:35:08.091 UTC: > ## ADBRUNNER.63392 [emulator-5554] * PWD: /data/local/tmp/ndk-tests/x86/2619196d-c6e5-4a3d-a60d-e780246f62a0/bin 2015-11-06 15:35:08.091 UTC: > ## ADBRUNNER.63392 [emulator-5554] * === END OF LAUNCHER PARAMETERS === 2015-11-06 15:35:09.228 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 2015-11-06 15:35:09.229 UTC: > ## ADBRUNNER.63392 [emulator-5554] * === BEGIN OF LOGCAT === 2015-11-06 15:35:09.235 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.204 2818 2818 F libc : Fatal signal 6 (SIGABRT), code -6 in tid 2818 (exe22ab2429afe6) 2015-11-06 15:35:09.235 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.326 959 959 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 2015-11-06 15:35:09.235 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.327 959 959 F DEBUG : Build fingerprint: 'generic_x86/sdk_phone_x86/generic_x86:6.0/MASTER/2331927:eng/test-keys' 2015-11-06 15:35:09.235 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.327 959 959 F DEBUG : Revision: '0' 2015-11-06 15:35:09.235 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.327 959 959 F DEBUG : ABI: 'x86' 2015-11-06 15:35:09.235 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.327 959 959 F DEBUG : pid: 2818, tid: 2818, name: exe22ab2429afe6 >>> ./exe22ab2429afe64691adb2e82368252344 <<< 2015-11-06 15:35:09.235 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.327 959 959 F DEBUG : signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr -------- 2015-11-06 15:35:09.235 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.327 959 959 F DEBUG : eax 00000000 ebx 00000b02 ecx 00000b02 edx 00000006 2015-11-06 15:35:09.236 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.327 959 959 F DEBUG : esi b7721c50 edi 00000002 2015-11-06 15:35:09.236 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.327 959 959 F DEBUG : xcs 00000073 xds 0000007b xes 0000007b xfs 00000000 xss 0000007b 2015-11-06 15:35:09.236 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.327 959 959 F DEBUG : eip b7547c16 ebp 00000b02 esp bf896c00 flags 00000202 2015-11-06 15:35:09.236 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.328 959 959 F DEBUG : 2015-11-06 15:35:09.236 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.328 959 959 F DEBUG : backtrace: 2015-11-06 15:35:09.236 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.328 959 959 F DEBUG : #00 pc 00084c16 /system/lib/libc.so (tgkill+22) 2015-11-06 15:35:09.236 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.328 959 959 F DEBUG : #01 pc 000815e8 /system/lib/libc.so (pthread_kill+70) 2015-11-06 15:35:09.236 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.329 959 959 F DEBUG : #02 pc 00027205 /system/lib/libc.so (raise+36) 2015-11-06 15:35:09.236 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.329 959 959 F DEBUG : #03 pc 0002dd10 /data/local/tmp/ndk-tests/x86/2619196d-c6e5-4a3d-a60d-e780246f62a0/bin/libcrystax.so 2015-11-06 15:35:09.236 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.329 959 959 F DEBUG : #04 pc 0002ba74 /data/local/tmp/ndk-tests/x86/2619196d-c6e5-4a3d-a60d-e780246f62a0/bin/libcrystax.so 2015-11-06 15:35:09.237 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.329 959 959 F DEBUG : #05 pc 0004feb2 /data/local/tmp/ndk-tests/x86/2619196d-c6e5-4a3d-a60d-e780246f62a0/bin/libcrystax.so 2015-11-06 15:35:09.237 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.329 959 959 F DEBUG : #06 pc 000159ed /system/lib/libc.so (malloc_fini_impl()+30) 2015-11-06 15:35:09.237 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.329 959 959 F DEBUG : #07 pc 00081ede /system/lib/libc.so (pthread_once+143) 2015-11-06 15:35:09.237 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.329 959 959 F DEBUG : #08 pc 00016e10 /system/lib/libc.so (malloc_debug_fini+38) 2015-11-06 15:35:09.237 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.329 959 959 F DEBUG : #09 pc 00016e53 /system/lib/libc.so (__libc_postfini()+19) 2015-11-06 15:35:09.237 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.329 959 959 F DEBUG : #10 pc 000230bb /system/lib/libc.so (__libc_fini+84) 2015-11-06 15:35:09.237 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.329 959 959 F DEBUG : #11 pc 00096215 /system/lib/libc.so (__cxa_finalize+341) 2015-11-06 15:35:09.237 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.329 959 959 F DEBUG : #12 pc 000155c7 /data/local/tmp/ndk-tests/x86/2619196d-c6e5-4a3d-a60d-e780246f62a0/bin/libcrystax.so 2015-11-06 15:35:09.237 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.329 959 959 F DEBUG : #13 pc 00016ec4 /system/lib/libc.so (__libc_init+107) 2015-11-06 15:35:09.237 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.329 959 959 F DEBUG : #14 pc 00000338 /data/local/tmp/ndk-tests/x86/2619196d-c6e5-4a3d-a60d-e780246f62a0/bin/exe22ab2429afe64691adb2e82368252344 2015-11-06 15:35:09.237 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.331 1591 1736 W NativeCrashListener: Couldn't find ProcessRecord for pid 2818 2015-11-06 15:35:09.238 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.318 959 959 W debuggerd: type=1400 audit(0.0:159): avc: denied { search } for name="tmp" dev="mtdblock1" ino=21123 scontext=u:r:debuggerd:s0 tcontext=u:object_r:shell_data_file:s0 tclass=dir permissive=0 2015-11-06 15:35:09.238 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.318 959 959 W debuggerd: type=1400 audit(0.0:160): avc: denied { search } for name="tmp" dev="mtdblock1" ino=21123 scontext=u:r:debuggerd:s0 tcontext=u:object_r:shell_data_file:s0 tclass=dir permissive=0 2015-11-06 15:35:09.238 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.318 959 959 W debuggerd: type=1400 audit(0.0:161): avc: denied { search } for name="tmp" dev="mtdblock1" ino=21123 scontext=u:r:debuggerd:s0 tcontext=u:object_r:shell_data_file:s0 tclass=dir permissive=0 2015-11-06 15:35:09.238 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.318 959 959 W debuggerd: type=1400 audit(0.0:162): avc: denied { search } for name="tmp" dev="mtdblock1" ino=21123 scontext=u:r:debuggerd:s0 tcontext=u:object_r:shell_data_file:s0 tclass=dir permissive=0 2015-11-06 15:35:09.238 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.318 959 959 W debuggerd: type=1400 audit(0.0:163): avc: denied { search } for name="tmp" dev="mtdblock1" ino=21123 scontext=u:r:debuggerd:s0 tcontext=u:object_r:shell_data_file:s0 tclass=dir permissive=0 2015-11-06 15:35:09.238 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.318 959 959 W debuggerd: type=1400 audit(0.0:164): avc: denied { search } for name="tmp" dev="mtdblock1" ino=21123 scontext=u:r:debuggerd:s0 tcontext=u:object_r:shell_data_file:s0 tclass=dir permissive=0 2015-11-06 15:35:09.238 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.340 959 959 F DEBUG : 2015-11-06 15:35:09.238 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.340 959 959 F DEBUG : Tombstone written to: /data/tombstones/tombstone_05 2015-11-06 15:35:09.238 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.340 959 959 E DEBUG : AM write failed: Broken pipe 2015-11-06 15:35:09.239 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 11-06 18:35:07.340 1591 1608 I BootReceiver: Copying /data/tombstones/tombstone_05 to DropBox (SYSTEM_TOMBSTONE) 2015-11-06 15:35:09.239 UTC: > ## ADBRUNNER.63392 [emulator-5554] * === END OF LOGCAT === 2015-11-06 15:35:09.253 UTC: > ## ADBRUNNER.63392 [emulator-5554] * 2015-11-06 15:35:09.253 UTC: > ## ADBRUNNER.63392 [emulator-5554] * === BEGIN OF NDK-STACK === 2015-11-06 15:35:09.267 UTC: > ## ADBRUNNER.63392 [emulator-5554] * ********** Crash dump: ********** 2015-11-06 15:35:09.267 UTC: > ## ADBRUNNER.63392 [emulator-5554] * Build fingerprint: 'generic_x86/sdk_phone_x86/generic_x86:6.0/MASTER/2331927:eng/test-keys' 2015-11-06 15:35:09.267 UTC: > ## ADBRUNNER.63392 [emulator-5554] * pid: 2818, tid: 2818, name: exe22ab2429afe6 >>> ./exe22ab2429afe64691adb2e82368252344 <<< 2015-11-06 15:35:09.267 UTC: > ## ADBRUNNER.63392 [emulator-5554] * signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr -------- 2015-11-06 15:35:09.268 UTC: > ## ADBRUNNER.63392 [emulator-5554] * Stack frame #00 pc 00084c16 /system/lib/libc.so (tgkill+22) 2015-11-06 15:35:09.268 UTC: > ## ADBRUNNER.63392 [emulator-5554] * Stack frame #01 pc 000815e8 /system/lib/libc.so (pthread_kill+70) 2015-11-06 15:35:09.268 UTC: > ## ADBRUNNER.63392 [emulator-5554] * Stack frame #02 pc 00027205 /system/lib/libc.so (raise+36) 2015-11-06 15:35:09.268 UTC: > ## ADBRUNNER.63392 [emulator-5554] * Stack frame #03 pc 0002dd10 /data/local/tmp/ndk-tests/x86/2619196d-c6e5-4a3d-a60d-e780246f62a0/bin/libcrystax.so: Routine abort at /home/cislave/workspace/ndk-build-all/HOST/linux/LABEL/ndk-build/platform/ndk/sources/crystax/src/stdlib/abort.c:42 2015-11-06 15:35:09.269 UTC: > ## ADBRUNNER.63392 [emulator-5554] * Stack frame #04 pc 0002ba74 /data/local/tmp/ndk-tests/x86/2619196d-c6e5-4a3d-a60d-e780246f62a0/bin/libcrystax.so: Routine free at /home/cislave/workspace/ndk-build-all/HOST/linux/LABEL/ndk-build/platform/ndk/sources/crystax/src/dlmalloc/../../vendor/dlmalloc/malloc.c:4776 2015-11-06 15:35:09.271 UTC: > ## ADBRUNNER.63392 [emulator-5554] * Stack frame #05 pc 0004feb2 /data/local/tmp/ndk-tests/x86/2619196d-c6e5-4a3d-a60d-e780246f62a0/bin/libcrystax.so: Routine fclose at /home/cislave/workspace/ndk-build-all/HOST/linux/LABEL/ndk-build/platform/ndk/sources/crystax/gen/freebsd/lib/libc/stdio/mangled-fclose.c:64 (discriminator 2) 2015-11-06 15:35:09.274 UTC: > ## ADBRUNNER.63392 [emulator-5554] * Stack frame #06 pc 000159ed /system/lib/libc.so (malloc_fini_impl()+30) 2015-11-06 15:35:09.275 UTC: > ## ADBRUNNER.63392 [emulator-5554] * Stack frame #07 pc 00081ede /system/lib/libc.so (pthread_once+143) 2015-11-06 15:35:09.275 UTC: > ## ADBRUNNER.63392 [emulator-5554] * Stack frame #08 pc 00016e10 /system/lib/libc.so (malloc_debug_fini+38) 2015-11-06 15:35:09.275 UTC: > ## ADBRUNNER.63392 [emulator-5554] * Stack frame #09 pc 00016e53 /system/lib/libc.so (__libc_postfini()+19) 2015-11-06 15:35:09.275 UTC: > ## ADBRUNNER.63392 [emulator-5554] * Stack frame #10 pc 000230bb /system/lib/libc.so (__libc_fini+84) 2015-11-06 15:35:09.275 UTC: > ## ADBRUNNER.63392 [emulator-5554] * Stack frame #11 pc 00096215 /system/lib/libc.so (__cxa_finalize+341) 2015-11-06 15:35:09.275 UTC: > ## ADBRUNNER.63392 [emulator-5554] * Stack frame #12 pc 000155c7 /data/local/tmp/ndk-tests/x86/2619196d-c6e5-4a3d-a60d-e780246f62a0/bin/libcrystax.so: Routine exit at /home/cislave/workspace/ndk-build-all/HOST/linux/LABEL/ndk-build/platform/ndk/sources/crystax/gen/freebsd/lib/libc/stdlib/mangled-exit.c:67 2015-11-06 15:35:09.275 UTC: > ## ADBRUNNER.63392 [emulator-5554] * Stack frame #13 pc 00016ec4 /system/lib/libc.so (__libc_init+107) 2015-11-06 15:35:09.275 UTC: > ## ADBRUNNER.63392 [emulator-5554] * Stack frame #14 pc 00000338 /data/local/tmp/ndk-tests/x86/2619196d-c6e5-4a3d-a60d-e780246f62a0/bin/exe22ab2429afe64691adb2e82368252344: Routine _start at main.c:? 2015-11-06 15:35:09.276 UTC: > ## ADBRUNNER.63392 [emulator-5554] * === END OF NDK-STACK ===
Updated by Dmitry M. about 9 years ago
- Is duplicate of Bug #1107: Standalone executables built with CrystaX 10.2.1 crash on Marshmallow added
Updated by Dmitry M. about 9 years ago
- Status changed from In Progress to Duplicate
- % Done changed from 0 to 100
Closing as duplicate
Updated by Dmitry M. about 9 years ago
- Status changed from Duplicate to Open
- Target version changed from 10.3.0 to 11.0.0
- % Done changed from 100 to 0
Updated by Dmitry M. about 9 years ago
This crash happens because of hybrid libcrystax + libc scheme of linking in CrystaX NDK. Part of standard functions is implemented in libcrystax, and remaining part is in libc. In particular, whole stdio is implemented in libcrystax and is not binary compatible with Google's stdio implementation, where @FILE@ structure has different size and layout. On previous Android versions, it was working fine, but in Android 6.0, the following code was added to Bionic:
fclose(stdin);
fclose(stdout);
fclose(stderr);
This code is called inside finalization functions, and it call libcrystax's @fclose@ with Bionic's @stdin@, @stdout@ and @stderr@, which are binary incompatible with libcrystax's @FILE@.
The only way to fix it is to avoid usage of Google's libc at all, and provide full libc functionality in libcrystax. This work is in progress, but not yet done. However, this crash doesn't look very critical, since it happens only at normal exit, and this never happen for typical Android application, where native part is shared library, loaded by Dalvik (or ART). Taking this into account, moving this ticket to the next release (10.4.0).
Updated by Dmitry M. about 9 years ago
- Blocked by Task #1165: Get rid of libc.so and replace it completely by libcrystax.so added
Updated by Dmitry M. over 8 years ago
- Status changed from In Progress to Completed
- % Done changed from 0 to 100
- CrystaX NDK Version set to 10.3.1
Updated by Roman L. over 8 years ago
The libraries built with Crystax NDK still crash when used with Qt, so I guess using static everything is not a proper way to fix that.
Actually, it doesn't matter whether you are linking to Qt libraries, or something else (like -llog or -landroid or -lexclusive_library_that_cannot_be_rebuilt_with_crystax), it will crash anyway.
This bug should be probably reopened, if Crystax NDK is planned to be a drop in replacement for Android NDK, but I'm not sure if it is reasonable to fix that considering an amount of the work required.
Overall, this bug makes Crystax NDK unusable at least for me.