2016-04-24 15:35 GMT+03:00 Bram Moolenaar <[email protected]>: > > John Little wrote: > >> On Friday, April 22, 2016 at 8:13:21 PM UTC+12, Lekare wrote: >> >> > When entering something really big, like >> > >> > :put =range(30000000000,300000000000000000000) >> > >> > Vim quits with message >> > >> > Vim: Caught deadly signal SEGV >> > Vim: Finished. >> > [1] 75479 segmentation fault \vim >> >> On my x86-64 with 16 GiB of RAM, that causes vim to gallop through >> memory at about 2 GiB/s, then linux is in strife, until >> >> [ 4382.649514 ] Out of memory: Kill process 2965 (gvim) score 917 or >> sacrifice child >> [ 4382.650036 ] killed process 2965 (gvim) total-vm:30326512kB, >> anon-rss:15751236kB, file-rss:160kB >> >> The point I'm trying to make is that if you ask vim to do stuff beyond >> the resources of the system it's running on, vim will try, and the >> failure depends on that system. IMO it would be very difficult to >> code vim to reliably catch all the ways it can fail like this. > > I've been trying to make Vim survive bad user behavior. An out of > memory situation should be handled gracefully. > > Looks like the problem is with the system: gdb says the crash happens in > ga_grow() when calling memset(), after checking that the pointer > returned by alloc() or realloc() is not NULL.
Linux has such thing as overcommit: https://www.kernel.org/doc/Documentation/vm/overcommit-accounting. I.e. system may allow you to allocate more memory then it actually has, at a cost of runtime errors obviously. This can be disabled. > > Unfortunately, Linux behaves quite badly. When I try that range() call > the whole system becomes unusable. Even the cursor freezes. This is one > situation that BSD handles much better. I have the same thing, except that it also kills some browser tabs (in chromium-based browsers I have working), in place of killing Vim which allocated lots of memory. > > -- > LAUNCELOT: I am, sir. I am a Knight of King Arthur. > FATHER: 'Mm ... very nice castle, Camelot ... very good pig country.... > "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD > > /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\ > /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ > \\\ an exciting new programming language -- http://www.Zimbu.org /// > \\\ help me help AIDS victims -- http://ICCF-Holland.org /// > > -- > -- > You received this message from the "vim_dev" maillist. > Do not top-post! Type your reply below the text you are replying to. > For more information, visit http://www.vim.org/maillist.php > > --- > You received this message because you are subscribed to the Google Groups > "vim_dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
