I was running redis on jetson tx2 - with JetPack3.3 using:
sudo docker run -p 6379:6379 --memory=100m --memory-reservation=100m --name my_name -d --restart always arm64v8/redis
Docker logs output is:
1:C 27 Jan 2021 12:49:23.504 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1:C 27 Jan 2021 12:49:23.504 # Redis version=6.0.10, bits=64, commit=00000000, modified=0, pid=1, just started
1:C 27 Jan 2021 12:49:23.504 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
1:M 27 Jan 2021 12:49:23.510 * Running mode=standalone, port=6379.
1:M 27 Jan 2021 12:49:23.510 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
1:M 27 Jan 2021 12:49:23.510 # Server initialized
1:M 27 Jan 2021 12:49:23.510 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
=== REDIS BUG REPORT START: Cut & paste starting from here ===
1:M 27 Jan 2021 12:49:23.510 # === ASSERTION FAILED ===
1:M 27 Jan 2021 12:49:23.510 # ==> server.c:4864 '!ret' is not true
1:M 27 Jan 2021 12:49:23.510 # (forcing SIGSEGV to print the bug report.)
1:M 27 Jan 2021 12:49:23.510 # Redis 6.0.10 crashed by signal: 11, si_code: 1
1:M 27 Jan 2021 12:49:23.510 # Crashed running the instruction at: 0x557f18d908
1:M 27 Jan 2021 12:49:23.510 # Accessing address: 0xffffffffffffff
1:M 27 Jan 2021 12:49:23.510 # Failed assertion: !ret (server.c:4864)
------ STACK TRACE ------
EIP:
redis-server *:6379(_serverAssert+0x80)[0x557f18d908]
Backtrace:
redis-server *:6379(logStackTrace+0x40)[0x557f190020]
redis-server *:6379(sigsegvHandler+0xbc)[0x557f19082c]
linux-vdso.so.1(__kernel_rt_sigreturn+0x0)[0x7faba36510]
redis-server *:6379(_serverAssert+0x80)[0x557f18d908]
redis-server *:6379(linuxMadvFreeForkBugCheck+0x2c8)[0x557f14de40]
redis-server *:6379(main+0x380)[0x557f1402b8]
/lib/aarch64-linux-gnu/libc.so.6(__libc_start_main+0xe4)[0x7fab444d24]
redis-server *:6379(+0x3e708)[0x557f140708]
------ INFO OUTPUT ------
# Server
redis_version:6.0.10
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:5d9f47a024d32aad
redis_mode:standalone
os:Linux 4.4.38-docker aarch64
arch_bits:64
multiplexing_api:epoll
atomicvar_api:atomic-builtin
gcc_version:8.3.0
process_id:1
run_id:eab007f431513e71ca2794e1cb833ae6d48a88dc
tcp_port:6379
uptime_in_seconds:0
uptime_in_days:0
hz:10
configured_hz:10
lru_clock:1139027
executable:/data/redis-server
config_file:
io_threads_active:0
# Clients
connected_clients:0
client_recent_max_input_buffer:0
client_recent_max_output_buffer:0
blocked_clients:0
tracking_clients:0
clients_in_timeout_table:0
# Memory
used_memory:837328
used_memory_human:817.70K
used_memory_rss:0
used_memory_rss_human:0B
used_memory_peak:837328
used_memory_peak_human:817.70K
used_memory_peak_perc:inf%
used_memory_overhead:0
used_memory_startup:0
used_memory_dataset:837328
used_memory_dataset_perc:100.00%
allocator_allocated:0
allocator_active:0
allocator_resident:0
total_system_memory:8230514688
total_system_memory_human:7.67G
used_memory_lua:37888
used_memory_lua_human:37.00K
used_memory_scripts:0
used_memory_scripts_human:0B
number_of_cached_scripts:0
maxmemory:0
maxmemory_human:0B
maxmemory_policy:noeviction
allocator_frag_ratio:nan
allocator_frag_bytes:0
allocator_rss_ratio:nan
allocator_rss_bytes:0
rss_overhead_ratio:nan
rss_overhead_bytes:0
mem_fragmentation_ratio:nan
mem_fragmentation_bytes:0
mem_not_counted_for_evict:0
mem_replication_backlog:0
mem_clients_slaves:0
mem_clients_normal:0
mem_aof_buffer:0
mem_allocator:jemalloc-5.1.0
active_defrag_running:0
lazyfree_pending_objects:0
# Persistence
loading:0
rdb_changes_since_last_save:0
rdb_bgsave_in_progress:0
rdb_last_save_time:1611751763
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:-1
rdb_current_bgsave_time_sec:-1
rdb_last_cow_size:0
aof_enabled:0
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok
aof_last_cow_size:0
module_fork_in_progress:0
module_fork_last_cow_size:0
# Stats
total_connections_received:0
total_commands_processed:0
instantaneous_ops_per_sec:0
total_net_input_bytes:0
total_net_output_bytes:0
instantaneous_input_kbps:0.00
instantaneous_output_kbps:0.00
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:0
expired_stale_perc:0.00
expired_time_cap_reached_count:0
expire_cycle_cpu_milliseconds:0
evicted_keys:0
keyspace_hits:0
keyspace_misses:0
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:0
migrate_cached_sockets:0
slave_expires_tracked_keys:0
active_defrag_hits:0
active_defrag_misses:0
active_defrag_key_hits:0
active_defrag_key_misses:0
tracking_total_keys:0
tracking_total_items:0
tracking_total_prefixes:0
unexpected_error_replies:0
total_reads_processed:0
total_writes_processed:0
io_threaded_reads_processed:0
io_threaded_writes_processed:0
# Replication
role:master
connected_slaves:0
master_replid:a0c809d969f391d8cb2bea28b537d5aee76e68f3
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
# CPU
used_cpu_sys:0.016000
used_cpu_user:0.048000
used_cpu_sys_children:0.000000
used_cpu_user_children:0.000000
# Modules
# Commandstats
# Cluster
cluster_enabled:0
# Keyspace
------ CLIENT LIST OUTPUT ------
------ REGISTERS ------
1:M 27 Jan 2021 12:49:23.511 #
X18:0000000000000000 X19:000000557f2cd000
X20:0000000000001300 X21:000000557f258628
X22:000000557f25afb0 X23:000000557f2de1f0
X24:000000557f2cd000 X25:0000000000000001
X26:0000000000000000 X27:0000000000000000
X28:0000000000000000 X29:0000007fecd255c0
X30:000000557f18d900
pc:000000557f18d908 sp:0000007fecd255c0
pstate:0000000060000000 fault_address:00ffffffffffffff
1:M 27 Jan 2021 12:49:23.511 # (0000007fecd255cf) -> 0000000000000000
1:M 27 Jan 2021 12:49:23.511 # (0000007fecd255ce) -> 0000000000000001
1:M 27 Jan 2021 12:49:23.511 # (0000007fecd255cd) -> 000000557f2cd000
1:M 27 Jan 2021 12:49:23.511 # (0000007fecd255cc) -> 000000557f2de1f0
1:M 27 Jan 2021 12:49:23.511 # (0000007fecd255cb) -> 0000007fecd25730
1:M 27 Jan 2021 12:49:23.511 # (0000007fecd255ca) -> 0000007fecd258b8
1:M 27 Jan 2021 12:49:23.511 # (0000007fecd255c9) -> 0000000000000000
1:M 27 Jan 2021 12:49:23.511 # (0000007fecd255c8) -> 000000557f2de1f0
1:M 27 Jan 2021 12:49:23.511 # (0000007fecd255c7) -> 000000557f1402b8
1:M 27 Jan 2021 12:49:23.511 # (0000007fecd255c6) -> 0000007fecd256a0
1:M 27 Jan 2021 12:49:23.511 # (0000007fecd255c5) -> 0000007fecd25730
1:M 27 Jan 2021 12:49:23.511 # (0000007fecd255c4) -> 0000007fecd258b8
1:M 27 Jan 2021 12:49:23.511 # (0000007fecd255c3) -> 0000007faba28000
1:M 27 Jan 2021 12:49:23.511 # (0000007fecd255c2) -> 0000007faba29000
1:M 27 Jan 2021 12:49:23.511 # (0000007fecd255c1) -> 000000557f14de40
1:M 27 Jan 2021 12:49:23.511 # (0000007fecd255c0) -> 0000007fecd255f0
------ MODULES INFO OUTPUT ------
------ FAST MEMORY TEST ------
*** Preparing to test memory region 557f2d9000 (974848 bytes)
*** Preparing to test memory region 7faa700000 (13631488 bytes)
*** Preparing to test memory region 7fab592000 (16384 bytes)
*** Preparing to test memory region 7fab5c1000 (16384 bytes)
*** Preparing to test memory region 7fab868000 (16384 bytes)
*** Preparing to test memory region 7fab94a000 (4096 bytes)
*** Preparing to test memory region 7faba29000 (4096 bytes)
*** Preparing to test memory region 7faba2b000 (32768 bytes)
.O.O.O.O.O.O.O.O
Fast memory test PASSED, however your memory can still be broken. Please run a memory test for several hours if possible.
------ DUMPING CODE AROUND EIP ------
Symbol: _serverAssert (base: 0x557f18d888)
Module: redis-server *:6379 (base 0x557f102000)
$ xxd -r -p /tmp/dump.hex /tmp/dump.bin
$ objdump --adjust-vma=0x557f18d888 -D -b binary -m i386:x86-64 /tmp/dump.bin
------
1:M 27 Jan 2021 12:49:23.784 # dump of function (hexdump of 256 bytes):
fd7bbda9fd030091f35301a9130a0090f403022af55b02a9f60300aaf50301aa605e46f900e44db96003003460008052c10600f021c0239162e7fe97e40316aae303142ae20315aa60008052c10600f0214024915be7fe97625e46f960008052c10600f021c0249156e806f955ec06f954e00db953e7fe9700008092010f805201000039f35341a9f55b42a9fd7bc3a8c0035fd68bfeff97e5ffff171f2003d5fd7bb2a9010a0090fd030091215c46f9f35301a9f40300aaf76303a920e44db94008003460008052c10600f0218025913ce7fe97825e40f960008052c10600f021202691130080d2d70600f035e7fe97800640f9020480d2e1030191e5390194
=== REDIS BUG REPORT END. Make sure to include from START to END. ===
Please report the crash by opening an issue on github:
http://github.com/redis/redis/issues
Suspect RAM error? Use redis-server --test-memory to verify it.
Note that running older docker/redis versions work just fine.
The following is running with no crushes:
sudo docker run -p 6379:6379 --memory=100m --memory-reservation=100m --name my_name -d --restart always arm64v8/redis:5
OS details:
$ uname -a
Linux tegra-ubuntu 4.4.38-tegra #8 SMP PREEMPT Fri Nov 9 13:01:46 CST 2018 aarch64 aarch64 aarch64 GNU/Linux
Comment From: yossigo
Hello @ofirule, long time! hope you're well.
Redis is trying to detect if the Linux kernel is vulnerable to a critical bug (arm64-specific), and the test itself crashes (asserts). It's going to be solved by #8405 but we're still a bit in the dark as to what's triggering this problem. I have some questions that may help identifying it:
* What OS release and kernel do you use?
* Any specific kernel configuration/tuning done?
* Do you experience the same problem if you download, compile and run unstable redis-server on the host and not insider docker?
Thanks!
Comment From: ofirule
Hi @yossigo, indeed long time, all is well, hope you're well too.
- OS info :
$ uname -a
Linux tegra-ubuntu 4.4.38-tegra #8 SMP PREEMPT Fri Nov 9 13:01:46 CST 2018 aarch64 aarch64 aarch64 GNU/Linux
it's basically ubuntu 16.04 for aarch64 with modifications nvidia made to support their HW
-
kernel configuration/tuning: I didn't made any, NVIDIA probably did some. I can add
/proc/config.gz(in an email or some other method since it's 5k rows long) -
Running unstable redis without docker (also crash):
$ ./redis-server
24204:C 27 Jan 2021 14:36:22.716 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
24204:C 27 Jan 2021 14:36:22.716 # Redis version=255.255.255, bits=64, commit=9e56d396, modified=0, pid=24204, just started
24204:C 27 Jan 2021 14:36:22.716 # Warning: no config file specified, using the default config. In order to specify a config file use ./redis-server /path/to/redis.conf
24204:M 27 Jan 2021 14:36:22.719 # You requested maxclients of 10000 requiring at least 10032 max file descriptors.
24204:M 27 Jan 2021 14:36:22.719 # Server can't set maximum open files to 10032 because of OS error: Operation not permitted.
24204:M 27 Jan 2021 14:36:22.719 # Current maximum open files is 4096. maxclients has been reduced to 4064 to compensate for low ulimit. If you need higher maxclients increase 'ulimit -n'.
24204:M 27 Jan 2021 14:36:22.719 * monotonic clock: POSIX clock_gettime
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 255.255.255 (9e56d396/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 24204
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
24204:M 27 Jan 2021 14:36:22.721 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
24204:M 27 Jan 2021 14:36:22.721 # Server initialized
24204:M 27 Jan 2021 14:36:22.721 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
=== REDIS BUG REPORT START: Cut & paste starting from here ===
24204:M 27 Jan 2021 14:36:22.721 # === ASSERTION FAILED ===
24204:M 27 Jan 2021 14:36:22.721 # ==> server.c:5241 '!ret' is not true
------ STACK TRACE ------
Backtrace:
./redis-server *:6379(linuxMadvFreeForkBugCheck+0x2ac)[0x43d424]
./redis-server *:6379(main+0x4cc)[0x42e554]
/lib/aarch64-linux-gnu/libc.so.6(__libc_start_main+0xe0)[0x7fa17b78a0]
------ INFO OUTPUT ------
# Server
redis_version:255.255.255
redis_git_sha1:9e56d396
redis_git_dirty:0
redis_build_id:c8c1bdc8e7de6bf1
redis_mode:standalone
os:Linux 4.4.38-tegra aarch64
arch_bits:64
multiplexing_api:epoll
atomicvar_api:c11-builtin
gcc_version:5.4.0
process_id:24204
process_supervised:no
run_id:0054db4695b3831df1ca8254b07ff45ca27d54c7
tcp_port:6379
server_time_usec:1611758182711932
uptime_in_seconds:0
uptime_in_days:0
hz:10
configured_hz:10
lru_clock:1145446
executable:/home/nvidia/dev/redis/src/./redis-server
config_file:
io_threads_active:0
# Clients
connected_clients:0
cluster_connections:0
maxclients:4064
client_recent_max_input_buffer:0
client_recent_max_output_buffer:0
blocked_clients:0
tracking_clients:0
clients_in_timeout_table:0
# Memory
used_memory:530832
used_memory_human:518.39K
used_memory_rss:0
used_memory_rss_human:0B
used_memory_peak:530832
used_memory_peak_human:518.39K
used_memory_peak_perc:inf%
used_memory_overhead:0
used_memory_startup:0
used_memory_dataset:530832
used_memory_dataset_perc:100.00%
allocator_allocated:0
allocator_active:0
allocator_resident:0
total_system_memory:8236527616
total_system_memory_human:7.67G
used_memory_lua:37888
used_memory_lua_human:37.00K
used_memory_scripts:0
used_memory_scripts_human:0B
number_of_cached_scripts:0
maxmemory:0
maxmemory_human:0B
maxmemory_policy:noeviction
allocator_frag_ratio:nan
allocator_frag_bytes:0
allocator_rss_ratio:nan
allocator_rss_bytes:0
rss_overhead_ratio:nan
rss_overhead_bytes:0
mem_fragmentation_ratio:nan
mem_fragmentation_bytes:0
mem_not_counted_for_evict:0
mem_replication_backlog:0
mem_clients_slaves:0
mem_clients_normal:0
mem_aof_buffer:0
mem_allocator:jemalloc-5.1.0
active_defrag_running:0
lazyfree_pending_objects:0
lazyfreed_objects:0
# Persistence
loading:0
current_cow_size:0
rdb_changes_since_last_save:0
rdb_bgsave_in_progress:0
rdb_last_save_time:1611758182
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:-1
rdb_current_bgsave_time_sec:-1
rdb_last_cow_size:0
aof_enabled:0
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok
aof_last_cow_size:0
module_fork_in_progress:0
module_fork_last_cow_size:0
# Stats
total_connections_received:0
total_commands_processed:0
instantaneous_ops_per_sec:0
total_net_input_bytes:0
total_net_output_bytes:0
instantaneous_input_kbps:0.00
instantaneous_output_kbps:0.00
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:0
expired_stale_perc:0.00
expired_time_cap_reached_count:0
expire_cycle_cpu_milliseconds:0
evicted_keys:0
keyspace_hits:0
keyspace_misses:0
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:0
total_forks:0
migrate_cached_sockets:0
slave_expires_tracked_keys:0
active_defrag_hits:0
active_defrag_misses:0
active_defrag_key_hits:0
active_defrag_key_misses:0
tracking_total_keys:0
tracking_total_items:0
tracking_total_prefixes:0
unexpected_error_replies:0
total_error_replies:0
dump_payload_sanitizations:0
total_reads_processed:0
total_writes_processed:0
io_threaded_reads_processed:0
io_threaded_writes_processed:0
# Replication
role:master
connected_slaves:0
master_replid:f0a0c9299db03fe2bca83e7aa4d4f06156da1c56
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
# CPU
used_cpu_sys:0.008000
used_cpu_user:0.008000
used_cpu_sys_children:0.000000
used_cpu_user_children:0.000000
used_cpu_sys_main_thread:0.008000
used_cpu_user_main_thread:0.008000
# Modules
# Commandstats
# Errorstats
# Cluster
cluster_enabled:0
# Keyspace
------ CLIENT LIST OUTPUT ------
------ MODULES INFO OUTPUT ------
------ FAST MEMORY TEST ------
*** Preparing to test memory region 5d4000 (2416640 bytes)
*** Preparing to test memory region 7fa0e00000 (8388608 bytes)
*** Preparing to test memory region 7fa18db000 (16384 bytes)
*** Preparing to test memory region 7fa1907000 (16384 bytes)
*** Preparing to test memory region 7fa1a07000 (4096 bytes)
*** Preparing to test memory region 7fa1a09000 (20480 bytes)
.O.O.O.O.O.O
Fast memory test PASSED, however your memory can still be broken. Please run a memory test for several hours if possible.
=== REDIS BUG REPORT END. Make sure to include from START to END. ===
Please report the crash by opening an issue on github:
http://github.com/redis/redis/issues
Suspect RAM error? Use redis-server --test-memory to verify it.
Aborted (core dumped)
Comment From: yossigo
@ofirule Thanks, so we know it's not a Docker issue.
One last ask, can you try to build and run directly from #8405 and paste the Redis log?
The log file should include more information about the error code we receive (and if you include ignore-warnings ARM64-COW-BUG it should even run).
Comment From: ofirule
very nice, worked exactly as you said
Building from your branch redis failed with informative error:
$ ./redis-server
13030:C 27 Jan 2021 16:20:00.657 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
13030:C 27 Jan 2021 16:20:00.657 # Redis version=255.255.255, bits=64, commit=b9f36a1f, modified=0, pid=13030, just started
13030:C 27 Jan 2021 16:20:00.658 # Warning: no config file specified, using the default config. In order to specify a config file use ./redis-server /path/to/redis.conf
13030:M 27 Jan 2021 16:20:00.663 # You requested maxclients of 10000 requiring at least 10032 max file descriptors.
13030:M 27 Jan 2021 16:20:00.663 # Server can't set maximum open files to 10032 because of OS error: Operation not permitted.
13030:M 27 Jan 2021 16:20:00.663 # Current maximum open files is 4096. maxclients has been reduced to 4064 to compensate for low ulimit. If you need higher maxclients increase 'ulimit -n'.
13030:M 27 Jan 2021 16:20:00.663 * monotonic clock: POSIX clock_gettime
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 255.255.255 (b9f36a1f/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 13030
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
13030:M 27 Jan 2021 16:20:00.665 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
13030:M 27 Jan 2021 16:20:00.665 # Server initialized
13030:M 27 Jan 2021 16:20:00.666 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
13030:M 27 Jan 2021 16:20:00.666 # Failed to madvise(): Invalid argument
13030:M 27 Jan 2021 16:20:00.666 # Failed to test the kernel for a bug that could lead to data corruption during background save.
13030:M 27 Jan 2021 16:20:00.666 # Redis will now exit to prevent data corruption. Note that it is possible to suppress this warning by setting the following config: ignore-warnings ARM64-COW-BUG
and redis was running when I included ignore-warnings ARM64-COW-BUG
$ ./redis-server myconf
16113:C 27 Jan 2021 16:24:36.756 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
16113:C 27 Jan 2021 16:24:36.756 # Redis version=255.255.255, bits=64, commit=b9f36a1f, modified=0, pid=16113, just started
16113:C 27 Jan 2021 16:24:36.756 # Configuration loaded
16113:M 27 Jan 2021 16:24:36.759 # You requested maxclients of 10000 requiring at least 10032 max file descriptors.
16113:M 27 Jan 2021 16:24:36.759 # Server can't set maximum open files to 10032 because of OS error: Operation not permitted.
16113:M 27 Jan 2021 16:24:36.760 # Current maximum open files is 4096. maxclients has been reduced to 4064 to compensate for low ulimit. If you need higher maxclients increase 'ulimit -n'.
16113:M 27 Jan 2021 16:24:36.760 * monotonic clock: POSIX clock_gettime
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 255.255.255 (b9f36a1f/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 16113
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
16113:M 27 Jan 2021 16:24:36.761 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
16113:M 27 Jan 2021 16:24:36.761 # Server initialized
16113:M 27 Jan 2021 16:24:36.761 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
16113:M 27 Jan 2021 16:24:36.762 # Failed to madvise(): Invalid argument
16113:M 27 Jan 2021 16:24:36.762 # Failed to test the kernel for a bug that could lead to data corruption during background save.
16113:M 27 Jan 2021 16:24:36.762 * Ready to accept connections
Comment From: yossigo
So apparently MADV_FREE is not available before 4.5, which explains the EINVAL error. Thanks @ofirule for helping to track this down!