Open nikarh opened 10 months ago
Tagging subscribers to this area: @dotnet/gc See info in area-owners.md if you want to be subscribed.
Author: | nikarh |
---|---|
Assignees: | - |
Labels: | `area-GC-coreclr`, `untriaged`, `area-Codegen-AOT-mono`, `needs-area-label` |
Milestone: | - |
@dotnet/gc this looks the same as https://github.com/dotnet/runtime/issues/95257#issuecomment-1833251006. If it is, this is the second customer report.
It seems to be caused by W^X, try setting the environment variable DOTNET_EnableWriteXorExecute=0
and see if it resolves your issue.
It seems to be caused by W^X, try setting the environment variable DOTNET_EnableWriteXorExecute=0 and see if it resolves your issue.
This won't help. W^X is not applicable to AOT. DOTNET_EnableWriteXorExecute
has no effect for AOT compiled binaries.
As mentioned above, DOTNET_EnableWriteXorExecute=0 ./HelloWorld
did not work. For now, I have only this workaround - DOTNET_GCHeapHardLimit=400000000 ./HelloWorld
+ @mangod9 For investigation. I think it would be good to ensure our device support is as wide as possible now that Native AOT makes it more appropriate to target niche devices.
@dotnet/gc this looks the same as #95257 (comment). If it is, this is the second customer report.
Is this a scenario where multiple GCs are being loaded within the process?
No, just one. The mmap fails earlier
Adding @janvorli since some fixes were done in this space in 9 around retrieving available virtual memory. Looks like the large reservation is failing.
@nikarh is it possible that the maximum usable virtual memory size is limited on this device? What does ulimit -v
show?
Ah, I am sorry I've missed that you've tested creating a large mapping using a C test program. Then the virtual memory size is not limited and the problem would be caused by used physical memory amount.
Actually, the reservation that causes the failure is also just virtual memory, so it is strange that your testing C program and dotnet app behaves differently.
@nikarh is it possible that the maximum usable virtual memory size is limited on this device? What does
ulimit -v
show?
Unfortunately not the case:
$ ulimit -v
unlimited
@nikarh one more idea - can you please share the output of cat /proc/sys/vm/overcommit_memory
? If that was 2, it would explain the failure. That setting would indicate that the OS would deny any requesting more virtual memory space than there is the size of swap + certain percentage of total physical memory (cat /proc/sys/vm/overcommit_ratio
would dump that percentage).
Although if that was the culprit, I would expect the allocation to fail even when you've set the DOTNET_GCHeapHardLimit slightly below the 32GB, unless you have a really large swap.
@nikarh one more idea - can you please share the output of
cat /proc/sys/vm/overcommit_memory
? If that was 2, it would explain the failure. That setting would indicate that the OS would deny any requesting more virtual memory space than there is the size of swap + certain percentage of total physical memory (cat /proc/sys/vm/overcommit_ratio
would dump that percentage). Although if that was the culprit, I would expect the allocation to fail even when you've set the DOTNET_GCHeapHardLimit slightly below the 32GB, unless you have a really large swap.
Unfortunately, the device is not rooted, and the shell
user lacks read permissions to /proc/sys/vm
on this device.
Hey @nikarh, are you still hitting this issue for your scenario?
Hey @nikarh, are you still hitting this issue for your scenario?
We have several user reports related to the GC reserving huge amounts of memory on various devices with likely customized linux kernels. https://github.com/dotnet/runtime/issues/95257#issuecomment-1833251006 was the other one. Both are mmap failures. It would be nice if the GC could scale the reservation down to a more reasonable amount given the device - e.g. the other issue I linked seems to imply that if one attempts to reserve 256 GB twice, the second reservation is going to fail - i.e. the GC is doing something within the process that does not coexist very well with someone else also wanting to allocate memory (it's not clear to me how big is the total limit, but there apparently is a limit and the GC is pushing the process close to it).
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 withENOMEM
. SettingDOTNET_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, settingDOTNET_GCHeapHardLimit
to: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:
```c #includeReproduction Steps
With Android NDK r26b in PATH:
Expected behavior
Should output
Hello, World!
Actual behavior
Exit code 255 and
strace
showsmmap
failed withENOMEM
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
NVIDIA/foster_e/foster:11/RQ1A.210105.003/7825230_3167.5736:user/release-keys
Other information
Related to #85650