Although the Erlang VM is designed to be very robust in the presence of coding errors, there are still a few ways to crash it. How to Crash Erlang describes several of these:
- Run out of atoms.
- Run out of processes.
- Flood the mailbox for a process.
- Create too many large binaries in a single process.
This makes me wonder whether there might be ways to protect the VM against these (and other) categories of coding errors. For example, I could imagine ways to monitor use of limited resources, killing aberrant processes before they can crash the VM.
Can anyone help me to understand why this hasn’t been done, at least as an option for use in pre-production testing? ELIF…
-r