<div dir="ltr">Recently I was searching for robust way to restart elang VM in case of sudden<br>stop (like crash or OOM).<br>And I found rather difficult to reproduce OOM conditions: I was trying to create<br>gigantic list of integers, so VM would be killed.<br>I did this:<br><br>L1 = [I || I <- lists:seq(1, 1000)].<br>L2 = [L1 || _ <- lists:seq(1, 1000)].<br>L3 = [L2 || _ <- lists:seq(1, 1000)]. % here VM hangs<br><br>But according to syslog it doesn't look like OOM death, I can't see usual log<br>entries like "Out of memory: Kill process 3855 (beam.smp) score 909 or sacrifice<br>child" and others.<br><br>My current understanding is I asked more memory then I allowed to ask, and b/c<br>OS is not willing to give this memory, erlang VM hangs.<br><br>If somebody have ideas how to reproduce OOM I would appreciate for sharing.<br><br>Thanks!<br></div>