Lead Engineer @ Packetware
Rust Caught fatal signal - signo:6 code:-6 errno:0 addr:0x
Example of the error
mmap(PROT_NONE) failed
Caught fatal signal - signo:6 code:-6 errno:0 addr:0x3e8000e8dc6
Obtained 15 stack frames.
#0 0x007faa7741a520 in (Unknown)
#1 0x007faa7746ea7c in (Unknown)
#2 0x007faa7741a476 in (Unknown)
#3 0x007faa774007f3 in (Unknown)
#4 0x007faa76e3c256 in (Unknown)
#5 0x007faa76e3c2c3 in (Unknown)
#6 0x007faa76e3f1c3 in (Unknown)
#7 0x007faa76e3f42c in (Unknown)
#8 0x007faa76e404fe in (Unknown)
#9 0x007faa76e435d2 in (Unknown)
#10 0x007faa76e437ac in (Unknown)
#11 0x007faa76e168aa in (Unknown)
#12 0x007faa76dcc827 in (Unknown)
#13 0x007faa76dcc88e in (Unknown)
#14 0x000000417ed5ff in (wrapper managed-to-native) object:__icall_wrapper_ves_icall_array_new_specific (intptr,int)
What does this error represent?
This error is a proto map failure resulting in a crash of a Rust server, yet there are actions to take to prevent it.
Runtime kernel parameters to add
echo "vm.max_map_count = 262144" >> /etc/sysctl.conf
The first command, echo "vm.max_map_count = 262144" >> /etc/sysctl.conf
, appends the line vm.max_map_count = 262144
to the /etc/sysctl.conf
file. This configuration parameter controls the maximum number of memory map areas a process can have. Memory mapping is a technique used by programs to access files and devices directly in memory. By setting vm.max_map_count to 262144, you are increasing the limit on the number of memory map areas that can be created.
echo "fs.file-max = 2097152" >> /etc/sysctl.conf
The second command, echo "fs.file-max = 2097152" >> /etc/sysctl.conf
, appends the line fs.file-max = 2097152
to the same configuration file. This parameter determines the maximum number of open file descriptors (file handles) that can be allocated system-wide. By setting fs.file-max to 2097152, you are increasing the limit on the number of file descriptors that the operating system can handle.
sysctl -p
The sysctl -p
command is used to apply changes made to the system's runtime kernel parameters from the configuration files.
When you modify the configuration file /etc/sysctl.conf
(or other files in the /etc/sysctl.d/ directory
), these changes are not immediately applied to the system. Instead, they are stored as configuration settings. To make these settings take effect and be applied to the system, you need to use the sysctl -p
command.