Skip to content

AOT built binary for aarch64 android fails to run on Nvidia Shield TV #96592

Open
@nikarh

Description

@nikarh

Description

I am trying to run an AOT compiled Hello World on aarch64 on Nvidia Shield TV android device. It always returns exit code 255. I ran the app with strace and got the following output:

Strace stderr:
 execve("./AndroidRepro", ["./AndroidRepro"], 0x7fe83df310 /* 24 vars */) = 0
getpid()                                = 23894
mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c37e8c000
set_tid_address(0x2c37e84508)           = 23894
faccessat(AT_FDCWD, "/dev/urandom", R_OK) = 0
futex(0x2c37e811c8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
getrandom("\xa0\x90\x71\xd6\x6e\xab\x88\x7e\xb6\xf4\xfd\xc8\x1a\x42\xde\xeb\xec\x4a\x0f\x44\x4b\x81\x64\x6f\xd8\xcb\x07\x8b\x42\x68\x2a\x81"..., 40, GRND_NONBLOCK) = 40
mmap(NULL, 1104, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c37e8f000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c37e8f000, 1104, "arc4random data") = 0
sched_getscheduler(0)                   = 0 (SCHED_OTHER)
mmap(NULL, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c37e90000
mprotect(0x2c37e90000, 4096, PROT_NONE) = 0
sigaltstack({ss_sp=0x2c37e91000, ss_flags=0, ss_size=32768}, NULL) = 0
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c37e91000, 32768, "thread signal stack") = 0
mmap(NULL, 16777216, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c37e99000
mprotect(0x2c3832e000, 8192, PROT_READ|PROT_WRITE) = 0
mprotect(0x2c37e76000, 28672, PROT_READ) = 0
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c37e7f000, 45056, ".bss") = 0
mprotect(0x2c37e83000, 4096, PROT_READ) = 0
mprotect(0x2c37e83000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x2c37e83000, 4096, PROT_READ) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38e99000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38e99000, 4096, "atexit handlers") = 0
mprotect(0x2c38e99000, 4096, PROT_READ) = 0
mprotect(0x2c38e99000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x2c38e99000, 4096, PROT_READ) = 0
mprotect(0x2c38e99000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x2c38e99000, 4096, PROT_READ) = 0
mprotect(0x2c38e99000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x2c38e99000, 4096, PROT_READ) = 0
mprotect(0x2c38e99000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x2c38e99000, 4096, PROT_READ) = 0
mprotect(0x2c38e99000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x2c38e99000, 4096, PROT_READ) = 0
mprotect(0x2c38e99000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x2c38e99000, 4096, PROT_READ) = 0
mprotect(0x2c38e99000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x2c38e99000, 4096, PROT_READ) = 0
mprotect(0x2c38e99000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x2c38e99000, 4096, PROT_READ) = 0
mprotect(0x2c38e99000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x2c38e99000, 4096, PROT_READ) = 0
mprotect(0x2c38e99000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x2c38e99000, 4096, PROT_READ) = 0
mprotect(0x2c38e99000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x2c38e99000, 4096, PROT_READ) = 0
mprotect(0x2c38e99000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x2c38e99000, 4096, PROT_READ) = 0
mprotect(0x2c38e99000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x2c38e99000, 4096, PROT_READ) = 0
futex(0x2c37e811c8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38e9a000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38e9a000, 4096, "bionic_alloc_small_objects") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38e9b000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38e9b000, 4096, "bionic_alloc_small_objects") = 0
mmap(NULL, 409600, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38e9c000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38e9c000, 409600, "linker_alloc") = 0
mprotect(0x2c38e9c000, 409600, PROT_READ|PROT_WRITE) = 0
openat(AT_FDCWD, "/dev/null", O_RDWR)   = 3
fcntl(0, F_GETFL)                       = 0x20002 (flags O_RDWR|O_LARGEFILE)
fcntl(1, F_GETFL)                       = 0x20002 (flags O_RDWR|O_LARGEFILE)
fcntl(2, F_GETFL)                       = 0x20001 (flags O_WRONLY|O_LARGEFILE)
close(3)                                = 0
newfstatat(AT_FDCWD, "/dev/__properties__", {st_mode=S_IFDIR|0711, st_size=3780, ...}, 0) = 0
faccessat(AT_FDCWD, "/dev/__properties__/property_info", R_OK) = 0
openat(AT_FDCWD, "/dev/__properties__/property_info", O_RDONLY|O_NOFOLLOW|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=58100, ...}) = 0
mmap(NULL, 58100, PROT_READ, MAP_SHARED, 3, 0) = 0x2c38f00000
close(3)                                = 0
mmap(NULL, 7400, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38f0f000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38f0f000, 7400, "System property context nodes") = 0
openat(AT_FDCWD, "/dev/__properties__/properties_serial", O_RDONLY|O_NOFOLLOW|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=131072, ...}) = 0
mmap(NULL, 131072, PROT_READ, MAP_SHARED, 3, 0) = 0x2c38f11000
close(3)                                = 0
mmap(NULL, 40960, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38f31000
mprotect(0x2c38f32000, 32768, PROT_READ|PROT_WRITE) = 0
openat(AT_FDCWD, "/dev/__properties__/u:object_r:exported2_default_prop:s0", O_RDONLY|O_NOFOLLOW|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=131072, ...}) = 0
mmap(NULL, 131072, PROT_READ, MAP_SHARED, 3, 0) = 0x2c38f3b000
close(3)                                = 0
rt_sigaction(SIGABRT, {sa_handler=0x2c37ddfc00, sa_mask=~[], sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGBUS, {sa_handler=0x2c37ddfc00, sa_mask=~[], sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGFPE, {sa_handler=0x2c37ddfc00, sa_mask=~[], sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGILL, {sa_handler=0x2c37ddfc00, sa_mask=~[], sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGSEGV, {sa_handler=0x2c37ddfc00, sa_mask=~[], sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGSTKFLT, {sa_handler=0x2c37ddfc00, sa_mask=~[], sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGSYS, {sa_handler=0x2c37ddfc00, sa_mask=~[], sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGTRAP, {sa_handler=0x2c37ddfc00, sa_mask=~[], sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGRT_3, {sa_handler=0x2c37ddfc00, sa_mask=~[], sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
prctl(PR_GET_DUMPABLE)                  = 1 (SUID_DUMP_USER)
futex(0x2c37e811c8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
openat(AT_FDCWD, "/dev/__properties__/u:object_r:debug_prop:s0", O_RDONLY|O_NOFOLLOW|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=131072, ...}) = 0
mmap(NULL, 131072, PROT_READ, MAP_SHARED, 3, 0) = 0x2c38f5b000
close(3)                                = 0
futex(0x2c37e811c8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38f7b000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38f7b000, 4096, "bionic_alloc_small_objects") = 0
newfstatat(AT_FDCWD, "/proc/self/exe", {st_mode=S_IFREG|0771, st_size=4246440, ...}, 0) = 0
readlinkat(AT_FDCWD, "/proc/self/exe", "/data/local/tmp/AndroidRepro", 4096) = 28
mmap(NULL, 409600, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38f7c000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38f7c000, 409600, "linker_alloc") = 0
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x5f94ae8000, 278528, ".bss") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38fe0000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38fe0000, 4096, "bionic_alloc_small_objects") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38fe1000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38fe1000, 4096, "bionic_alloc_small_objects") = 0
newfstatat(AT_FDCWD, "/system/etc/ld.config.arm64.txt", 0x7ff16b59e0, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/linkerconfig/ld.config.txt", {st_mode=S_IFREG|0644, st_size=68959, ...}, 0) = 0
openat(AT_FDCWD, "/linkerconfig/ld.config.txt", O_RDONLY|O_NOFOLLOW|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=68959, ...}) = 0
mmap(NULL, 69632, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38fe2000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38fe2000, 69632, "bionic_alloc_lob") = 0
read(3, "dir.system = /system/bin/\ndir.sy"..., 1024) = 1024
read(3, "em/system_ext/${LIB}\nnamespace.d"..., 1024) = 1024
read(3, "ted.paths += /odm/framework\nname"..., 1024) = 1024
read(3, "uct/${LIB}\nnamespace.default.asa"..., 1024) = 1024
read(3, "efault.asan.permitted.paths += /"..., 1024) = 1024
read(3, "ink.com_android_adbd.shared_libs"..., 1024) = 1024
read(3, ".com_android_adbd.isolated = tru"..., 1024) = 1024
read(3, "= libc.so\nnamespace.com_android_"..., 1024) = 1024
read(3, "mitted.paths += /apex/com.androi"..., 1024) = 1024
read(3, "mespace.com_android_conscrypt.li"..., 1024) = 1024
read(3, ".isolated = true\nnamespace.com_a"..., 1024) = 1024
read(3, "ace.com_android_media.link.defau"..., 1024) = 1024
read(3, "tted.paths += /system/${LIB}\nnam"..., 1024) = 1024
read(3, "tworks.link.default.shared_libs "..., 1024) = 1024
read(3, "om.android.os.statsd/${LIB}\nname"..., 1024) = 1024
read(3, "rch64-android.so:libclang_rt.asa"..., 1024) = 1024
read(3, "shared_libs += libdl.so\nnamespac"..., 1024) = 1024
read(3, ".runtime/${LIB}\nnamespace.com_an"..., 1024) = 1024
read(3, "_rt.hwasan-aarch64-android.so:li"..., 1024) = 1024
read(3, "space.rs.asan.search.paths += /d"..., 1024) = 1024
read(3, "libs += libdl.so\nnamespace.rs.li"..., 1024) = 1024
read(3, "asan.search.paths += /data/asan/"..., 1024) = 1024
read(3, "libs += libm.so\nnamespace.sphal."..., 1024) = 1024
read(3, "ls.so:libgralloctypes.so:libhard"..., 1024) = 1024
read(3, "dk.asan.search.paths += /data/as"..., 1024) = 1024
read(3, "an-arm-android.so:libdl.so:liblo"..., 1024) = 1024
read(3, "lt.visible = true\nnamespace.defa"..., 1024) = 1024
read(3, "dk.so:libnativewindow.so:libneur"..., 1024) = 1024
read(3, "1.0.so:android.hidl.memory.token"..., 1024) = 1024
read(3, ".hardware.audio.effect@2.0.so:an"..., 1024) = 1024
read(3, "io@1.0.so:android.hardware.broad"..., 1024) = 1024
read(3, "id.hardware.drm@1.0.so:android.h"..., 1024) = 1024
read(3, "@2.1.so:android.hardware.identit"..., 1024) = 1024
read(3, "r@1.1.so:android.hardware.power@"..., 1024) = 1024
read(3, ".thermal@2.0.so:android.hardware"..., 1024) = 1024
read(3, "hidl.memory.block@1.0.so:android"..., 1024) = 1024
read(3, "radio_metadata.so:libspeexresamp"..., 1024) = 1024
read(3, "ibadbd_auth.so\nnamespace.com_and"..., 1024) = 1024
read(3, "com_android_art.isolated = true\n"..., 1024) = 1024
read(3, "ermitted.paths = /apex/com.andro"..., 1024) = 1024
read(3, "neuralnetworks.link.system.share"..., 1024) = 1024
read(3, "stem/${LIB}\nnamespace.com_androi"..., 1024) = 1024
read(3, "lone-aarch64-android.so:libclang"..., 1024) = 1024
read(3, "libs += libicuuc.so\nnamespace.sy"..., 1024) = 1024
read(3, "amespace.vndk.asan.search.paths "..., 1024) = 1024
read(3, "n_standalone-arm-android.so\nname"..., 1024) = 1024
read(3, "B}\nnamespace.default.asan.search"..., 1024) = 1024
read(3, "roid_art.shared_libs += libpac.s"..., 1024) = 1024
read(3, "adbd.link.default.shared_libs +="..., 1024) = 1024
read(3, "art.search.paths = /apex/com.and"..., 1024) = 1024
read(3, "scrypt.permitted.paths += /syste"..., 1024) = 1024
read(3, "link.default.shared_libs += libc"..., 1024) = 1024
read(3, " += libc.so\nnamespace.com_androi"..., 1024) = 1024
read(3, "alone-arm-android.so\nnamespace.c"..., 1024) = 1024
read(3, "_android_neuralnetworks.link.def"..., 1024) = 1024
read(3, "isolated = true\nnamespace.com_an"..., 1024) = 1024
read(3, "ibs += libc.so\nnamespace.com_and"..., 1024) = 1024
read(3, "ce.com_android_resolv.asan.permi"..., 1024) = 1024
read(3, "one-aarch64-android.so:libclang_"..., 1024) = 1024
read(3, ".default.shared_libs += libdl.so"..., 1024) = 1024
read(3, "space.rs.asan.search.paths = /da"..., 1024) = 1024
read(3, "id.so:libclang_rt.asan-arm-andro"..., 1024) = 1024
read(3, "search.paths += /vendor/${LIB}/h"..., 1024) = 1024
read(3, "mediandk.so:libnativewindow.so:l"..., 1024) = 1024
read(3, "aphics.mapper@3.0.so:android.har"..., 1024) = 1024
read(3, "dk.permitted.paths += /system/ve"..., 1024) = 1024
read(3, "apex/com.android.vndk.v30/${LIB}"..., 1024) = 1024
read(3, "namespace.vndk.link.sphal.allow_"..., 1024) = 351
read(3, "", 1024)                       = 0
close(3)                                = 0
faccessat(AT_FDCWD, "/system/bin", R_OK) = 0
openat(AT_FDCWD, "/system/bin", O_RDONLY|O_CLOEXEC|O_PATH) = 3
fstat(3, {st_mode=S_IFDIR|0751, st_size=8192, ...}) = 0
readlinkat(AT_FDCWD, "/proc/self/fd/3", "/system/bin", 4095) = 11
newfstatat(AT_FDCWD, "/system/bin", {st_mode=S_IFDIR|0751, st_size=8192, ...}, 0) = 0
close(3)                                = 0
faccessat(AT_FDCWD, "/system/xbin", R_OK) = 0
openat(AT_FDCWD, "/system/xbin", O_RDONLY|O_CLOEXEC|O_PATH) = 3
fstat(3, {st_mode=S_IFDIR|0751, st_size=4096, ...}) = 0
readlinkat(AT_FDCWD, "/proc/self/fd/3", "/system/xbin", 4095) = 12
newfstatat(AT_FDCWD, "/system/xbin", {st_mode=S_IFDIR|0751, st_size=4096, ...}, 0) = 0
close(3)                                = 0
faccessat(AT_FDCWD, "/system/system_ext/bin", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/system/product/bin", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/odm/bin", R_OK)   = 0
openat(AT_FDCWD, "/odm/bin", O_RDONLY|O_CLOEXEC|O_PATH) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
readlinkat(AT_FDCWD, "/proc/self/fd/3", "/vendor/odm/bin", 4095) = 15
newfstatat(AT_FDCWD, "/vendor/odm/bin", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
close(3)                                = 0
faccessat(AT_FDCWD, "/vendor/bin", R_OK) = 0
openat(AT_FDCWD, "/vendor/bin", O_RDONLY|O_CLOEXEC|O_PATH) = 3
fstat(3, {st_mode=S_IFDIR|0751, st_size=4096, ...}) = 0
readlinkat(AT_FDCWD, "/proc/self/fd/3", "/vendor/bin", 4095) = 11
newfstatat(AT_FDCWD, "/vendor/bin", {st_mode=S_IFDIR|0751, st_size=4096, ...}, 0) = 0
close(3)                                = 0
faccessat(AT_FDCWD, "/data/nativetest/odm", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/data/nativetest64/odm", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/data/benchmarktest/odm", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/data/benchmarktest64/odm", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/data/nativetest/vendor", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/data/nativetest64/vendor", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/data/benchmarktest/vendor", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/data/benchmarktest64/vendor", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/data/nativetest/unrestricted", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/data/nativetest64/unrestricted", R_OK) = -1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/data/local/tmp", R_OK) = 0
openat(AT_FDCWD, "/data/local/tmp", O_RDONLY|O_CLOEXEC|O_PATH) = 3
fstat(3, {st_mode=S_IFDIR|0771, st_size=4096, ...}) = 0
readlinkat(AT_FDCWD, "/proc/self/fd/3", "/data/local/tmp", 4095) = 15
newfstatat(AT_FDCWD, "/data/local/tmp", {st_mode=S_IFDIR|0771, st_size=4096, ...}, 0) = 0
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38ff3000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38ff3000, 4096, "bionic_alloc_small_objects") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38ff4000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38ff4000, 4096, "bionic_alloc_small_objects") = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38ff5000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38ff5000, 8192, "bionic_alloc_lob") = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38ff7000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38ff7000, 8192, "bionic_alloc_lob") = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38ff9000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38ff9000, 8192, "bionic_alloc_lob") = 0
munmap(0x2c38ff5000, 8192)              = 0
munmap(0x2c38ff7000, 8192)              = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38ff5000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38ff5000, 8192, "bionic_alloc_lob") = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38ff7000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38ff7000, 8192, "bionic_alloc_lob") = 0
munmap(0x2c38ff5000, 8192)              = 0
munmap(0x2c38ff9000, 8192)              = 0
munmap(0x2c38ff7000, 8192)              = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38ff5000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38ff5000, 4096, "bionic_alloc_small_objects") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38ff6000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38ff6000, 4096, "bionic_alloc_small_objects") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38ff7000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38ff7000, 4096, "bionic_alloc_small_objects") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38ff8000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38ff8000, 4096, "bionic_alloc_small_objects") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38ff9000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38ff9000, 4096, "bionic_alloc_small_objects") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38ffa000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38ffa000, 4096, "bionic_alloc_small_objects") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38ffb000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38ffb000, 4096, "bionic_alloc_lob") = 0
munmap(0x2c38fe2000, 69632)             = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38fe2000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38fe2000, 4096, "bionic_alloc_small_objects") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38fe3000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38fe3000, 4096, "bionic_alloc_small_objects") = 0
openat(AT_FDCWD, "/dev/__properties__/u:object_r:vndk_prop:s0", O_RDONLY|O_NOFOLLOW|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=131072, ...}) = 0
mmap(NULL, 131072, PROT_READ, MAP_SHARED, 3, 0) = 0x2c38ffc000
close(3)                                = 0
mprotect(0x2c38e99000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x2c38e99000, 4096, PROT_READ) = 0
futex(0x2c37e811c8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
mprotect(0x2c38e99000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x2c38e99000, 4096, PROT_READ) = 0
futex(0x2c37e811c8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
openat(AT_FDCWD, "/odm/lib64/vndk-sp", O_RDONLY|O_CLOEXEC|O_PATH) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/odm/lib64/vndk-sp", 0x7ff16b3490, 0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/vendor/lib64/vndk-sp", O_RDONLY|O_CLOEXEC|O_PATH) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/vendor/lib64/vndk-sp", 0x7ff16b3490, 0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/apex/com.android.vndk.v30/lib64", O_RDONLY|O_CLOEXEC|O_PATH) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
readlinkat(AT_FDCWD, "/proc/self/fd/3", "/apex/com.android.vndk.v30/lib64", 4095) = 32
newfstatat(AT_FDCWD, "/apex/com.android.vndk.v30/lib64", {st_mode=S_IFDIR|0755, st_size=12288, ...}, 0) = 0
close(3)                                = 0
newfstatat(AT_FDCWD, "/apex/com.android.vndk.v30/lib64", {st_mode=S_IFDIR|0755, st_size=12288, ...}, 0) = 0
openat(AT_FDCWD, "/apex/com.android.neuralnetworks/lib64", O_RDONLY|O_CLOEXEC|O_PATH) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
readlinkat(AT_FDCWD, "/proc/self/fd/3", "/apex/com.android.neuralnetworks"..., 4095) = 38
newfstatat(AT_FDCWD, "/apex/com.android.neuralnetworks/lib64", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
close(3)                                = 0
newfstatat(AT_FDCWD, "/apex/com.android.neuralnetworks/lib64", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38fe4000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38fe4000, 4096, "bionic_alloc_small_objects") = 0
openat(AT_FDCWD, "/odm/lib64", O_RDONLY|O_CLOEXEC|O_PATH) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
readlinkat(AT_FDCWD, "/proc/self/fd/3", "/vendor/odm/lib64", 4095) = 17
newfstatat(AT_FDCWD, "/vendor/odm/lib64", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
close(3)                                = 0
newfstatat(AT_FDCWD, "/vendor/odm/lib64", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
openat(AT_FDCWD, "/vendor/lib64", O_RDONLY|O_CLOEXEC|O_PATH) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=8192, ...}) = 0
readlinkat(AT_FDCWD, "/proc/self/fd/3", "/vendor/lib64", 4095) = 13
newfstatat(AT_FDCWD, "/vendor/lib64", {st_mode=S_IFDIR|0755, st_size=8192, ...}, 0) = 0
close(3)                                = 0
newfstatat(AT_FDCWD, "/vendor/lib64", {st_mode=S_IFDIR|0755, st_size=8192, ...}, 0) = 0
openat(AT_FDCWD, "/vendor/lib64/hw", O_RDONLY|O_CLOEXEC|O_PATH) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
readlinkat(AT_FDCWD, "/proc/self/fd/3", "/vendor/lib64/hw", 4095) = 16
newfstatat(AT_FDCWD, "/vendor/lib64/hw", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
close(3)                                = 0
newfstatat(AT_FDCWD, "/vendor/lib64/hw", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
openat(AT_FDCWD, "/apex/com.android.runtime/lib64", O_RDONLY|O_CLOEXEC|O_PATH) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
readlinkat(AT_FDCWD, "/proc/self/fd/3", "/apex/com.android.runtime/lib64", 4095) = 31
newfstatat(AT_FDCWD, "/apex/com.android.runtime/lib64", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
close(3)                                = 0
newfstatat(AT_FDCWD, "/apex/com.android.runtime/lib64", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
openat(AT_FDCWD, "/apex/com.android.art/lib64", O_RDONLY|O_CLOEXEC|O_PATH) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
readlinkat(AT_FDCWD, "/proc/self/fd/3", "/apex/com.android.art/lib64", 4095) = 27
newfstatat(AT_FDCWD, "/apex/com.android.art/lib64", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
close(3)                                = 0
newfstatat(AT_FDCWD, "/apex/com.android.art/lib64", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
openat(AT_FDCWD, "/apex/com.android.resolv/lib64", O_RDONLY|O_CLOEXEC|O_PATH) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
readlinkat(AT_FDCWD, "/proc/self/fd/3", "/apex/com.android.resolv/lib64", 4095) = 30
newfstatat(AT_FDCWD, "/apex/com.android.resolv/lib64", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
close(3)                                = 0
newfstatat(AT_FDCWD, "/apex/com.android.resolv/lib64", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
openat(AT_FDCWD, "/apex/com.android.conscrypt/lib64", O_RDONLY|O_CLOEXEC|O_PATH) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
readlinkat(AT_FDCWD, "/proc/self/fd/3", "/apex/com.android.conscrypt/lib6"..., 4095) = 33
newfstatat(AT_FDCWD, "/apex/com.android.conscrypt/lib64", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
close(3)                                = 0
newfstatat(AT_FDCWD, "/apex/com.android.conscrypt/lib64", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
openat(AT_FDCWD, "/apex/com.android.media/lib64", O_RDONLY|O_CLOEXEC|O_PATH) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
readlinkat(AT_FDCWD, "/proc/self/fd/3", "/apex/com.android.media/lib64", 4095) = 29
newfstatat(AT_FDCWD, "/apex/com.android.media/lib64", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
close(3)                                = 0
newfstatat(AT_FDCWD, "/apex/com.android.media/lib64", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38fe5000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38fe5000, 4096, "bionic_alloc_small_objects") = 0
openat(AT_FDCWD, "/apex/com.android.os.statsd/lib64", O_RDONLY|O_CLOEXEC|O_PATH) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
readlinkat(AT_FDCWD, "/proc/self/fd/3", "/apex/com.android.os.statsd/lib6"..., 4095) = 33
newfstatat(AT_FDCWD, "/apex/com.android.os.statsd/lib64", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
close(3)                                = 0
newfstatat(AT_FDCWD, "/apex/com.android.os.statsd/lib64", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
openat(AT_FDCWD, "/apex/com.android.adbd/lib64", O_RDONLY|O_CLOEXEC|O_PATH) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
readlinkat(AT_FDCWD, "/proc/self/fd/3", "/apex/com.android.adbd/lib64", 4095) = 28
newfstatat(AT_FDCWD, "/apex/com.android.adbd/lib64", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
close(3)                                = 0
newfstatat(AT_FDCWD, "/apex/com.android.adbd/lib64", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38fe6000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38fe6000, 4096, "bionic_alloc_small_objects") = 0
openat(AT_FDCWD, "/system/lib64", O_RDONLY|O_CLOEXEC|O_PATH) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=24576, ...}) = 0
readlinkat(AT_FDCWD, "/proc/self/fd/3", "/system/lib64", 4095) = 13
newfstatat(AT_FDCWD, "/system/lib64", {st_mode=S_IFDIR|0755, st_size=24576, ...}, 0) = 0
close(3)                                = 0
newfstatat(AT_FDCWD, "/system/lib64", {st_mode=S_IFDIR|0755, st_size=24576, ...}, 0) = 0
openat(AT_FDCWD, "/system/system_ext/lib64", O_RDONLY|O_CLOEXEC|O_PATH) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/system/system_ext/lib64", 0x7ff16b3490, 0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/system/product/lib64", O_RDONLY|O_CLOEXEC|O_PATH) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
readlinkat(AT_FDCWD, "/proc/self/fd/3", "/system/product/lib64", 4095) = 21
newfstatat(AT_FDCWD, "/system/product/lib64", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
close(3)                                = 0
newfstatat(AT_FDCWD, "/system/product/lib64", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
munmap(0x2c38ff7000, 4096)              = 0
munmap(0x2c38ff5000, 4096)              = 0
munmap(0x2c38ffb000, 4096)              = 0
mmap(NULL, 409600, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c3901c000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c3901c000, 409600, "linker_alloc") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38fe7000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38fe7000, 4096, "bionic_alloc_small_objects") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38fe8000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38fe8000, 4096, "bionic_alloc_small_objects") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38fe9000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38fe9000, 4096, "bionic_alloc_lob") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38fea000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38fea000, 4096, "bionic_alloc_small_objects") = 0
munmap(0x2c38fe9000, 4096)              = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38fe9000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38fe9000, 4096, "bionic_alloc_lob") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38feb000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38feb000, 4096, "bionic_alloc_small_objects") = 0
munmap(0x2c38fe9000, 4096)              = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38fe9000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38fe9000, 4096, "bionic_alloc_lob") = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38fec000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38fec000, 4096, "bionic_alloc_small_objects") = 0
munmap(0x2c38fe9000, 4096)              = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38fe9000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38fe9000, 4096, "bionic_alloc_lob") = 0
munmap(0x2c38fe9000, 4096)              = 0
openat(AT_FDCWD, "/data/local/tmp", O_RDONLY|O_CLOEXEC|O_PATH) = 3
fstat(3, {st_mode=S_IFDIR|0771, st_size=4096, ...}) = 0
readlinkat(AT_FDCWD, "/proc/self/fd/3", "/data/local/tmp", 4095) = 15
newfstatat(AT_FDCWD, "/data/local/tmp", {st_mode=S_IFDIR|0771, st_size=4096, ...}, 0) = 0
close(3)                                = 0
newfstatat(AT_FDCWD, "/data/local/tmp", {st_mode=S_IFDIR|0771, st_size=4096, ...}, 0) = 0
mmap(NULL, 409600, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c39080000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c39080000, 409600, "linker_alloc") = 0
mmap(NULL, 409600, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c390e4000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c390e4000, 409600, "linker_alloc") = 0
openat(AT_FDCWD, "/data/local/tmp/libdl.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/system/lib64/libdl.so", O_RDONLY|O_CLOEXEC) = 3
readlinkat(AT_FDCWD, "/proc/self/fd/3", "/apex/com.android.runtime/lib64/"..., 4096) = 47
fstat(3, {st_mode=S_IFREG|0644, st_size=14176, ...}) = 0
fstatfs(3, {f_type=EXT2_SUPER_MAGIC, f_bsize=4096, f_blocks=516052, f_bfree=41864, f_bavail=37768, f_files=131072, f_ffree=127160, f_fsid={val=[2209516365, 3809902289]}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_RDONLY|ST_RELATIME}) = 0
pread64(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0\20\0\0\0\0\0\0"..., 64, 0) = 64
mmap(NULL, 688, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2c38fe9000
mmap(NULL, 2688, PROT_READ, MAP_PRIVATE, 3, 0x3000) = 0x2c38fed000
mmap(NULL, 272, PROT_READ, MAP_PRIVATE, 3, 0x2000) = 0x2c38fee000
mmap(NULL, 3706, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2c38fef000
openat(AT_FDCWD, "/data/local/tmp/libc.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/system/lib64/libc.so", O_RDONLY|O_CLOEXEC) = 4
readlinkat(AT_FDCWD, "/proc/self/fd/4", "/apex/com.android.runtime/lib64/"..., 4096) = 46
fstat(4, {st_mode=S_IFREG|0644, st_size=978160, ...}) = 0
fstatfs(4, {f_type=EXT2_SUPER_MAGIC, f_bsize=4096, f_blocks=516052, f_bfree=41864, f_bavail=37768, f_files=131072, f_ffree=127160, f_fsid={val=[2209516365, 3809902289]}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_RDONLY|ST_RELATIME}) = 0
pread64(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0\260\3\0\0\0\0\0"..., 64, 0) = 64
mmap(NULL, 744, PROT_READ, MAP_PRIVATE, 4, 0) = 0x2c38ff0000
mmap(NULL, 4704, PROT_READ, MAP_PRIVATE, 4, 0xee000) = 0x2c38ff1000
mmap(NULL, 4032, PROT_READ, MAP_PRIVATE, 4, 0xb8000) = 0x2c38ff5000
mmap(NULL, 18241, PROT_READ, MAP_PRIVATE, 4, 0xc000) = 0x2c39148000
mmap(NULL, 1306624, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c3914d000
munmap(0x2c3914d000, 237568)            = 0
munmap(0x2c39265000, 159744)            = 0
mmap(0x2c39187000, 238260, PROT_READ, MAP_PRIVATE|MAP_FIXED, 4, 0) = 0x2c39187000
mmap(0x2c391c2000, 501968, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 4, 0x3b000) = 0x2c391c2000
mmap(0x2c3923d000, 15040, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0xb6000) = 0x2c3923d000
mmap(0x2c39241000, 8424, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0xb9000) = 0x2c39241000
mmap(0x2c39244000, 135168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2c39244000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c39244000, 135168, ".bss") = 0
mmap(NULL, 520192, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c39265000
munmap(0x2c39265000, 163840)            = 0
munmap(0x2c39292000, 335872)            = 0
mmap(0x2c3928d000, 2972, PROT_READ, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x2c3928d000
mmap(0x2c3928e000, 672, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0x1000) = 0x2c3928e000
mmap(0x2c3928f000, 384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x2000) = 0x2c3928f000
mmap(0x2c39291000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2c39291000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c39291000, 4096, ".bss") = 0
rt_sigprocmask(SIG_BLOCK, ~[], [RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
mmap(NULL, 409600, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c39292000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c39292000, 409600, "linker_alloc") = 0
mprotect(0x5f94ae2000, 12288, PROT_READ) = 0
mprotect(0x2c3928f000, 4096, PROT_READ) = 0
mprotect(0x2c3923d000, 16384, PROT_READ) = 0
close(3)                                = 0
close(4)                                = 0
munmap(0x2c39148000, 18241)             = 0
munmap(0x2c38ff5000, 4032)              = 0
munmap(0x2c38ff1000, 4704)              = 0
munmap(0x2c38ff0000, 744)               = 0
munmap(0x2c38fef000, 3706)              = 0
munmap(0x2c38fee000, 272)               = 0
munmap(0x2c38fed000, 2688)              = 0
munmap(0x2c38fe9000, 688)               = 0
mmap(NULL, 20480, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x2c38fed000
mprotect(0x2c38fee000, 12288, PROT_READ|PROT_WRITE) = 0
rt_sigprocmask(SIG_BLOCK, ~[], [RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38fee000, 12288, "stack_and_tls:main") = 0
munmap(0x2c37e8c000, 12288)             = 0
mprotect(0x2c39247000, 4096, PROT_READ) = 0
mprotect(0x2c39247000, 4096, PROT_READ|PROT_WRITE) = 0
faccessat(AT_FDCWD, "/dev/urandom", R_OK) = 0
getrandom("\x69\x83\x9e\xc2\x0e\xd6\x2a\x9f\xa3\x71\xeb\x74\x84\x23\xe5\xc5\x88\xa7\x3e\x38\xc0\xe4\x40\x1a\x6c\xac\x2c\x43\x46\x74\xca\xde"..., 40, GRND_NONBLOCK) = 40
mmap(NULL, 1104, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c37e8c000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c37e8c000, 1104, "arc4random data") = 0
mprotect(0x2c39247000, 4096, PROT_READ) = 0
newfstatat(AT_FDCWD, "/dev/__properties__", {st_mode=S_IFDIR|0711, st_size=3780, ...}, 0) = 0
faccessat(AT_FDCWD, "/dev/__properties__/property_info", R_OK) = 0
openat(AT_FDCWD, "/dev/__properties__/property_info", O_RDONLY|O_NOFOLLOW|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=58100, ...}) = 0
mmap(NULL, 58100, PROT_READ, MAP_SHARED, 3, 0) = 0x2c39148000
close(3)                                = 0
mmap(NULL, 7400, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c37e8d000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c37e8d000, 7400, "System property context nodes") = 0
openat(AT_FDCWD, "/dev/__properties__/properties_serial", O_RDONLY|O_NOFOLLOW|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=131072, ...}) = 0
mmap(NULL, 131072, PROT_READ, MAP_SHARED, 3, 0) = 0x2c39157000
close(3)                                = 0
openat(AT_FDCWD, "/dev/__properties__/u:object_r:debug_prop:s0", O_RDONLY|O_NOFOLLOW|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=131072, ...}) = 0
mmap(NULL, 131072, PROT_READ, MAP_SHARED, 3, 0) = 0x2c39265000
close(3)                                = 0
rt_sigaction(SIGRT_7, {sa_handler=0x2c391d9eb0, sa_mask=[], sa_flags=SA_RESTART}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
prctl(0x37 /* PR_??? */, 0x1, 0, 0, 0)  = -1 EINVAL (Invalid argument)
mprotect(0x2c39247000, 4096, PROT_READ|PROT_WRITE) = 0
openat(AT_FDCWD, "/dev/__properties__/u:object_r:exported2_default_prop:s0", O_RDONLY|O_NOFOLLOW|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=131072, ...}) = 0
mmap(NULL, 131072, PROT_READ, MAP_SHARED, 3, 0) = 0x2c392f6000
close(3)                                = 0
openat(AT_FDCWD, "/dev/__properties__/u:object_r:heapprofd_prop:s0", O_RDONLY|O_NOFOLLOW|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=131072, ...}) = 0
mmap(NULL, 131072, PROT_READ, MAP_SHARED, 3, 0) = 0x2c39316000
close(3)                                = 0
mprotect(0x2c39247000, 4096, PROT_READ) = 0
rt_sigaction(SIGRT_4, {sa_handler=0x2c391c3e38, sa_mask=[], sa_flags=SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGRT_6, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTART}, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 8) = 0
getrandom("\xbd\x38\x15\xfd", 4, GRND_NONBLOCK) = 4
mmap(NULL, 8858370048, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x2c39336000
getrandom("\x86\xbb\x67\x26", 4, GRND_NONBLOCK) = 4
sched_getaffinity(0, 128, [0, 1, 2, 3]) = 8
mmap(0x2c69343000, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2c69343000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c69343000, 262144, "scudo:primary") = 0
mmap(0x2c39344000, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2c39344000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c39344000, 262144, "scudo:primary") = 0
futex(0x2c39244064, FUTEX_WAKE_PRIVATE, 2147483647) = 0
getuid()                                = 2000
prctl(PR_GET_DUMPABLE)                  = 1 (SUID_DUMP_USER)
openat(AT_FDCWD, "/system/lib64/libnetd_client.so", O_RDONLY|O_CLOEXEC) = 3
readlinkat(AT_FDCWD, "/proc/self/fd/3", "/system/lib64/libnetd_client.so", 4096) = 31
fstat(3, {st_mode=S_IFREG|0644, st_size=33432, ...}) = 0
fstatfs(3, {f_type=EXT2_SUPER_MAGIC, f_bsize=4096, f_blocks=516052, f_bfree=41864, f_bavail=37768, f_files=131072, f_ffree=127160, f_fsid={val=[2209516365, 3809902289]}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_RDONLY|ST_NODEV|ST_RELATIME}) = 0
pread64(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0000\0\0\0\0\0\0"..., 64, 0) = 64
mmap(NULL, 688, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2c38fe9000
mmap(NULL, 7920, PROT_READ, MAP_PRIVATE, 3, 0x7000) = 0x2c39177000
mmap(NULL, 560, PROT_READ, MAP_PRIVATE, 3, 0x7000) = 0x2c38ff2000
mmap(NULL, 7541, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2c39179000
openat(AT_FDCWD, "/system/lib64/libc++.so", O_RDONLY|O_CLOEXEC) = 4
readlinkat(AT_FDCWD, "/proc/self/fd/4", "/system/lib64/libc++.so", 4096) = 23
fstat(4, {st_mode=S_IFREG|0644, st_size=710816, ...}) = 0
fstatfs(4, {f_type=EXT2_SUPER_MAGIC, f_bsize=4096, f_blocks=516052, f_bfree=41864, f_bavail=37768, f_files=131072, f_ffree=127160, f_fsid={val=[2209516365, 3809902289]}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_RDONLY|ST_NODEV|ST_RELATIME}) = 0
pread64(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0\260\4\0\0\0\0\0"..., 64, 0) = 64
mmap(NULL, 688, PROT_READ, MAP_PRIVATE, 4, 0) = 0x2c38ff5000
mmap(NULL, 2688, PROT_READ, MAP_PRIVATE, 4, 0xad000) = 0x2c38ff7000
mmap(NULL, 8080, PROT_READ, MAP_PRIVATE, 4, 0xa8000) = 0x2c3917b000
mmap(NULL, 104313, PROT_READ, MAP_PRIVATE, 4, 0x12000) = 0x2e49336000
openat(AT_FDCWD, "/system/lib64/libm.so", O_RDONLY|O_CLOEXEC) = 5
readlinkat(AT_FDCWD, "/proc/self/fd/5", "/apex/com.android.runtime/lib64/"..., 4096) = 46
fstat(5, {st_mode=S_IFREG|0644, st_size=222512, ...}) = 0
fstatfs(5, {f_type=EXT2_SUPER_MAGIC, f_bsize=4096, f_blocks=516052, f_bfree=41864, f_bavail=37768, f_files=131072, f_ffree=127160, f_fsid={val=[2209516365, 3809902289]}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_RDONLY|ST_RELATIME}) = 0
pread64(5, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0\20\1\0\0\0\0\0"..., 64, 0) = 64
mmap(NULL, 688, PROT_READ, MAP_PRIVATE, 5, 0) = 0x2c38ffb000
mmap(NULL, 9184, PROT_READ, MAP_PRIVATE, 5, 0x35000) = 0x2c3917d000
mmap(NULL, 480, PROT_READ, MAP_PRIVATE, 5, 0x35000) = 0x2c39180000
mmap(NULL, 6360, PROT_READ, MAP_PRIVATE, 5, 0x2000) = 0x2c39181000
mmap(NULL, 1044480, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2e49350000
munmap(0x2e49350000, 221184)            = 0
munmap(0x2e49435000, 106496)            = 0
mmap(0x2e49386000, 304596, PROT_READ, MAP_PRIVATE|MAP_FIXED, 4, 0) = 0x2e49386000
mmap(0x2e493d1000, 363808, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 4, 0x4b000) = 0x2e493d1000
mmap(0x2e4942a000, 25232, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0xa4000) = 0x2e4942a000
mmap(0x2e49431000, 697, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0xaa000) = 0x2e49431000
mmap(0x2e49432000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2e49432000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2e49432000, 12288, ".bss") = 0
mmap(NULL, 520192, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2e49435000
munmap(0x2e49435000, 57344)             = 0
munmap(0x2e4947a000, 237568)            = 0
mmap(0x2e49443000, 69508, PROT_READ, MAP_PRIVATE|MAP_FIXED, 5, 0) = 0x2e49443000
mmap(0x2e49454000, 145968, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 5, 0x11000) = 0x2e49454000
mmap(0x2e49478000, 712, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 5, 0x35000) = 0x2e49478000
mmap(0x2e49479000, 832, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 5, 0x35000) = 0x2e49479000
mmap(NULL, 520192, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2e4947a000
munmap(0x2e4947a000, 139264)            = 0
munmap(0x2e494a5000, 344064)            = 0
mmap(0x2e4949c000, 9276, PROT_READ, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x2e4949c000
mmap(0x2e4949f000, 15920, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0x3000) = 0x2e4949f000
mmap(0x2e494a3000, 944, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x7000) = 0x2e494a3000
mmap(0x2e494a4000, 945, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x7000) = 0x2e494a4000
mprotect(0x2e494a3000, 4096, PROT_READ) = 0
mmap(NULL, 2147483648, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x2e494a5000
mprotect(0x2c39291000, 4096, PROT_READ) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c39183000
mprotect(0x2e497a1000, 4096, PROT_READ) = 0
mprotect(0x2c39183000, 4096, PROT_READ) = 0
mremap(0x2c39183000, 4096, 4096, MREMAP_MAYMOVE|MREMAP_FIXED, 0x2e497a1000) = 0x2e497a1000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c39183000
mprotect(0x2e49606000, 4096, PROT_READ) = 0
mprotect(0x2c39183000, 4096, PROT_READ) = 0
mremap(0x2c39183000, 4096, 4096, MREMAP_MAYMOVE|MREMAP_FIXED, 0x2e49606000) = 0x2e49606000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c39183000
mprotect(0x2e49606000, 4096, PROT_READ) = 0
mprotect(0x2c39183000, 4096, PROT_READ) = 0
mremap(0x2c39183000, 4096, 4096, MREMAP_MAYMOVE|MREMAP_FIXED, 0x2e49606000) = 0x2e49606000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c39183000
mprotect(0x2e49606000, 4096, PROT_READ) = 0
mprotect(0x2c39183000, 4096, PROT_READ) = 0
mremap(0x2c39183000, 4096, 4096, MREMAP_MAYMOVE|MREMAP_FIXED, 0x2e49606000) = 0x2e49606000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c39183000
mprotect(0x2e49617000, 4096, PROT_READ) = 0
mprotect(0x2c39183000, 4096, PROT_READ) = 0
mremap(0x2c39183000, 4096, 4096, MREMAP_MAYMOVE|MREMAP_FIXED, 0x2e49617000) = 0x2e49617000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c39183000
mprotect(0x2e49617000, 4096, PROT_READ) = 0
mprotect(0x2c39183000, 4096, PROT_READ) = 0
mremap(0x2c39183000, 4096, 4096, MREMAP_MAYMOVE|MREMAP_FIXED, 0x2e49617000) = 0x2e49617000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c39183000
mprotect(0x2e49617000, 4096, PROT_READ) = 0
mprotect(0x2c39183000, 4096, PROT_READ) = 0
mremap(0x2c39183000, 4096, 4096, MREMAP_MAYMOVE|MREMAP_FIXED, 0x2e49617000) = 0x2e49617000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2e494a5000, 2147483648, "cfi shadow") = 0
mprotect(0x2e4942a000, 28672, PROT_READ) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c39183000
mprotect(0x2e49617000, 4096, PROT_READ) = 0
mprotect(0x2c39183000, 4096, PROT_READ) = 0
mremap(0x2c39183000, 4096, 4096, MREMAP_MAYMOVE|MREMAP_FIXED, 0x2e49617000) = 0x2e49617000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2e494a5000, 2147483648, "cfi shadow") = 0
mprotect(0x2e49478000, 4096, PROT_READ) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c39183000
mprotect(0x2e49617000, 4096, PROT_READ) = 0
mprotect(0x2c39183000, 4096, PROT_READ) = 0
mremap(0x2c39183000, 4096, 4096, MREMAP_MAYMOVE|MREMAP_FIXED, 0x2e49617000) = 0x2e49617000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2e494a5000, 2147483648, "cfi shadow") = 0
close(3)                                = 0
close(4)                                = 0
close(5)                                = 0
munmap(0x2c39181000, 6360)              = 0
munmap(0x2c39180000, 480)               = 0
munmap(0x2c3917d000, 9184)              = 0
munmap(0x2c38ffb000, 688)               = 0
munmap(0x2e49336000, 104313)            = 0
munmap(0x2c3917b000, 8080)              = 0
munmap(0x2c38ff7000, 2688)              = 0
munmap(0x2c38ff5000, 688)               = 0
munmap(0x2c39179000, 7541)              = 0
munmap(0x2c38ff2000, 560)               = 0
munmap(0x2c39177000, 7920)              = 0
munmap(0x2c38fe9000, 688)               = 0
futex(0x2e49434340, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e49434340, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e49434340, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e49434340, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e49434340, FUTEX_WAKE_PRIVATE, 2147483647) = 0
mmap(0x2c49346000, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2c49346000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c49346000, 262144, "scudo:primary") = 0
futex(0x2e494312f0, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e49434340, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e49434340, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e49434340, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e49434340, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e49434340, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e49434340, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e49434340, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e49434340, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e49434340, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e49434340, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e49434340, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e49434340, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e49434340, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e49434340, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e49434340, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e49434340, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e49434340, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e49434340, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e49434340, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e49434340, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e49434340, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e49434340, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e49434340, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e494312f0, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x2e494312f0, FUTEX_WAKE_PRIVATE, 2147483647) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38fe9000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c38fe9000, 4096, "atexit handlers") = 0
mprotect(0x2c38fe9000, 4096, PROT_READ) = 0
munmap(0x2c390e4000, 409600)            = 0
prctl(PR_GET_DUMPABLE)                  = 1 (SUID_DUMP_USER)
prctl(PR_GET_DUMPABLE)                  = 1 (SUID_DUMP_USER)
prctl(PR_GET_DUMPABLE)                  = 1 (SUID_DUMP_USER)
openat(AT_FDCWD, "/dev/__properties__/u:object_r:vendor_socket_hook_prop:s0", O_RDONLY|O_NOFOLLOW|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=131072, ...}) = 0
mmap(NULL, 131072, PROT_READ, MAP_SHARED, 3, 0) = 0x2c390e4000
close(3)                                = 0
prctl(PR_GET_DUMPABLE)                  = 1 (SUID_DUMP_USER)
prctl(PR_GET_DUMPABLE)                  = 1 (SUID_DUMP_USER)
prctl(PR_GET_DUMPABLE)                  = 1 (SUID_DUMP_USER)
prctl(PR_GET_DUMPABLE)                  = 1 (SUID_DUMP_USER)
prctl(PR_GET_DUMPABLE)                  = 1 (SUID_DUMP_USER)
futex(0x2c3924404c, FUTEX_WAKE_PRIVATE, 2147483647) = 0
mprotect(0x2c38f7c000, 409600, PROT_READ) = 0
mprotect(0x2c38e9c000, 409600, PROT_READ) = 0
mprotect(0x2c3901c000, 409600, PROT_READ) = 0
mprotect(0x2c39080000, 409600, PROT_READ) = 0
mprotect(0x2c38fe9000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x2c38fe9000, 4096, PROT_READ) = 0
rt_sigaction(SIGSEGV, NULL, {sa_handler=0x2c37ddfc00, sa_mask=~[KILL STOP], sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO}, 8) = 0
rt_sigaction(SIGSEGV, {sa_handler=0x5f94a4894c, sa_mask=~[KILL STOP], sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO}, {sa_handler=0x2c37ddfc00, sa_mask=~[KILL STOP], sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO}, 8) = 0
rt_sigaction(SIGFPE, NULL, {sa_handler=0x2c37ddfc00, sa_mask=~[KILL STOP], sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO}, 8) = 0
rt_sigaction(SIGFPE, {sa_handler=0x5f94a48a50, sa_mask=~[KILL STOP], sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO}, {sa_handler=0x2c37ddfc00, sa_mask=~[KILL STOP], sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO}, 8) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTART}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
openat(AT_FDCWD, "/sys/devices/system/cpu", O_RDONLY|O_CLOEXEC|O_DIRECTORY) = 3
mmap(0x2d9933e000, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2d9933e000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2d9933e000, 262144, "scudo:primary") = 0
getdents64(3, /* 18 entries */, 4200)   = 528
getdents64(3, /* 0 entries */, 4200)    = 0
close(3)                                = 0
membarrier(MEMBARRIER_CMD_QUERY, 0)     = 0x1 (MEMBARRIER_CMD_GLOBAL)
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2c38ff2000
mlock(0x2c38ff2000, 4096)               = 0
statfs("/sys/fs/cgroup", {f_type=CGROUP2_SUPER_MAGIC, f_bsize=4096, f_blocks=0, f_bfree=0, f_bavail=0, f_files=0, f_ffree=0, f_fsid={val=[0, 0]}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_NOSUID|ST_NODEV|ST_NOEXEC|ST_RELATIME}) = 0
openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 3
mmap(0x2d79338000, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2d79338000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2d79338000, 262144, "scudo:primary") = 0
fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap(0x2d3933f000, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2d3933f000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2d3933f000, 262144, "scudo:primary") = 0
read(3, "18 0 179:19 / / ro,nodev,relatim"..., 1024) = 1024
mmap(0x2ca9344000, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2ca9344000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2ca9344000, 262144, "scudo:primary") = 0
mmap(0x2cb9340000, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2cb9340000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2cb9340000, 262144, "scudo:primary") = 0
mmap(0x2ce9337000, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2ce9337000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2ce9337000, 262144, "scudo:primary") = 0
read(3, "tmpfs tmpfs rw,seclabel,mode=755"..., 1024) = 1024
read(3, "v /apex/com.android.resolv ro,re"..., 1024) = 1024
read(3, " /apex/com.android.runtime ro,re"..., 1024) = 1024
read(3, "roid.tethering.inprocess /apex/c"..., 1024) = 1024
read(3, "ec,relatime shared:17 - cgroup n"..., 1024) = 1024
read(3, "ev,noatime shared:27 - ext4 /dev"..., 1024) = 1024
read(3, "ev/block/platform/sdhci-tegra.3/"..., 1024) = 1024
read(3, "w,nosuid,nodev,noexec,noatime sh"..., 1024) = 1024
read(3, "suid=1023,fsgid=1023,gid=9997,mu"..., 1024) = 1024
read(3, "c,noatime shared:32 - sdcardfs /"..., 1024) = 761
read(3, "", 1024)                       = 0
close(3)                                = 0
openat(AT_FDCWD, "/proc/self/cgroup", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
read(3, "6:schedtune:/\n5:memory:/\n4:cpuse"..., 1024) = 86
close(3)                                = 0
sched_getaffinity(23894, 128, [0, 1, 2, 3]) = 8
statfs("/sys/fs/cgroup", {f_type=CGROUP2_SUPER_MAGIC, f_bsize=4096, f_blocks=0, f_bfree=0, f_bavail=0, f_files=0, f_ffree=0, f_fsid={val=[0, 0]}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_NOSUID|ST_NODEV|ST_NOEXEC|ST_RELATIME}) = 0
openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
read(3, "18 0 179:19 / / ro,nodev,relatim"..., 1024) = 1024
read(3, "tmpfs tmpfs rw,seclabel,mode=755"..., 1024) = 1024
read(3, "v /apex/com.android.resolv ro,re"..., 1024) = 1024
read(3, " /apex/com.android.runtime ro,re"..., 1024) = 1024
read(3, "roid.tethering.inprocess /apex/c"..., 1024) = 1024
read(3, "ec,relatime shared:17 - cgroup n"..., 1024) = 1024
read(3, "ev,noatime shared:27 - ext4 /dev"..., 1024) = 1024
read(3, "ev/block/platform/sdhci-tegra.3/"..., 1024) = 1024
read(3, "w,nosuid,nodev,noexec,noatime sh"..., 1024) = 1024
read(3, "suid=1023,fsgid=1023,gid=9997,mu"..., 1024) = 1024
read(3, "c,noatime shared:32 - sdcardfs /"..., 1024) = 761
read(3, "", 1024)                       = 0
close(3)                                = 0
openat(AT_FDCWD, "/proc/self/cgroup", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
read(3, "6:schedtune:/\n5:memory:/\n4:cpuse"..., 1024) = 86
close(3)                                = 0
sched_getaffinity(23894, 128, [0, 1, 2, 3]) = 8
openat(AT_FDCWD, "/dev/stune//cpu.max", O_RDONLY) = -1 ENOENT (No such file or directory)
mprotect(0x2c38fe9000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x2c38fe9000, 4096, PROT_READ) = 0
mmap(0x2c99340000, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2c99340000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c99340000, 262144, "scudo:primary") = 0
mmap(0x2c8933c000, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2c8933c000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c8933c000, 262144, "scudo:primary") = 0
mmap(0x2c7933b000, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2c7933b000
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x2c7933b000, 262144, "scudo:primary") = 0
rt_sigaction(SIGRT_8, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_8, {sa_handler=0x5f94a44fb8, sa_mask=[], sa_flags=SA_RESTART|SA_SIGINFO}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
futex(0x5f94af4b10, FUTEX_WAKE_PRIVATE, 2147483647) = 0
openat(AT_FDCWD, "/dev/stune//memory.max", O_RDONLY) = -1 ENOENT (No such file or directory)
sysinfo({uptime=71185, loads=[13344, 17408, 15936], totalram=3093553152, freeram=122851328, sharedram=18128896, bufferram=19349504, totalswap=536866816, freeswap=344616960, procs=1612, totalhigh=0, freehigh=0, mem_unit=1}) = 0
mmap(NULL, 274877911040, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = -1 ENOMEM (Out of memory)
mprotect(0x2c38fe9000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x2c38fe9000, 4096, PROT_READ) = 0
mprotect(0x2c38fe9000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x2c38fe9000, 4096, PROT_READ) = 0
mprotect(0x2c38fe9000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x2c38fe9000, 4096, PROT_READ) = 0
exit_group(-1)                          = ?
+++ exited with 255 +++

It looks like the failure is caused by mmap failing with ENOMEM.
Setting DOTNET_GCHeapHardLimit to lower values solves the issue.

I tried to find the root cause of the mmap failure but was not able to. Empirically I found that on this hardware, running the elf in an infinite bash loop that checks the exit code, setting DOTNET_GCHeapHardLimit to:

  • 64+GB is guaranteed to fail
  • above 40GB fails every second run of the binary
  • 32+GB fails every 20th run or so
  • Setting it below 32GB doesn't fail

I tried to make a minimal C program that does a single mmap to reproduce the issue, but interestingly enough, it never fails, even with max long long int value.

That leads to the conclusion that the issue is caused not by just a single mmap, but by a combination of syscalls.

C program:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <sys/mman.h>

int main(int argc, char *argv[]) {
    size_t size = 0;
    if (sscanf(argv[1], "%zu", &size) != 1) {
      printf("invalid arg\n");
      return 1;
    }

    printf("mapping %zu\n", size);
    void *ptr = mmap(NULL, size, PROT_NONE , MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);

    if (ptr <= 0) {
        perror("mmap failed\n");
        return 1;
    } else {
        printf("mmap succeeded\n");
        return 0;
    }
}

Reproduction Steps

With Android NDK r26b in PATH:

dotnet new console -o HelloWorld --aot
cd HelloWorld
dotnet publish -r linux-bionic-arm64 -p:DisableUnsupportedError=true -p:PublishAotUsingRuntimePack=true -p:StripSymbols=false
adb push ./bin/Release/net8.0/linux-bionic-arm64/publish/HelloWorld.dll /data/local/tmp/
adb shell /data/local/tmp/HelloWorld

Expected behavior

Should output Hello, World!

Actual behavior

Exit code 255 and strace shows mmap failed with ENOMEM

Regression?

No response

Known Workarounds

Setting DOTNET_GCHeapHardLimit to some small value. Since I'm running the code on an Android device, and the intended use is to run it via JNI from Java code, I can set env before doing a JNI call from Java.

Configuration

  • dotnet 8.0.100
  • Android TV, Android 11, 4.9.141-tegra-gfad87a91fd8
  • Nvidia Shield TV 2015, NVIDIA/foster_e/foster:11/RQ1A.210105.003/7825230_3167.5736:user/release-keys
  • aarch64
  • No such issue on other Android devices I have
[ro.build.characteristics]: [tv]
[ro.build.date]: [Sun Oct 16 20:55:18 PDT 2022]
[ro.build.date.utc]: [1665978918]
[ro.build.description]: [foster_e-user 11 RQ1A.210105.003 7825230_3167.5736 release-keys]
[ro.build.display.id]: [RQ1A.210105.003.7825230_3167.5736]
[ro.build.fingerprint]: [NVIDIA/foster_e/foster:11/RQ1A.210105.003/7825230_3167.5736:user/release-keys]
[ro.build.flavor]: [foster_e-user]
[ro.build.host]: [mobile-u64-5308-d7000]
[ro.build.id]: [RQ1A.210105.003]
[ro.build.product]: [foster]
[ro.build.system_root_image]: [true]
[ro.build.tags]: [release-keys]
[ro.build.type]: [user]
[ro.build.user]: [NVIDIA]
[ro.build.version.all_codenames]: [REL]
[ro.build.version.base_os]: []
[ro.build.version.codename]: [REL]
[ro.build.version.incremental]: [7825230_3167.5736]
[ro.build.version.min_supported_target_sdk]: [23]
[ro.build.version.ota]: [9.1.1(33.2.0.157)]
[ro.build.version.preview_sdk]: [0]
[ro.build.version.preview_sdk_fingerprint]: [REL]
[ro.build.version.release]: [11]
[ro.build.version.release_or_codename]: [11]
[ro.build.version.sdk]: [30]
[ro.build.version.security_patch]: [2022-04-05]

Other information

Related to #85650

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions