|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Dmitry Miloserdov 2:5020/400 14 Sep 2005 19:14:59 To : Vitaly E. Lavrov Subject : Re: malloc() overcommit bug --------------------------------------------------------------------------------
Hello, Vitaly!
You wrote to Vadim Goncharov on 14 Sep 2005 13:16:02 GMT:
??>> Мне тут сказали, что во фре всех версий и линуксе с ядрами версий
??>> менее 2.6 есть дефект VM: при попытке использования
??>> выделенной malloc()/calloc() памяти приложение может быть убито по
??>> segfault, хотя malloc() вернул не NULL. Hа винде, солярке, HPUX такой
??>> проблемы, как говорят, нет. Hа ядрах 2.6 и выше линукса это можно
??>> отключить установкой /proc/sys/vm/overcommit_memory в 2.
VEL> a что делать VM после кода
VEL> p=malloc(много); много+много > больше доступной памяти, а много <
VEL> больше доступной памяти
VEL> bzero(p);
VEL> fork();
VEL> bzero(p);
fork() должен выдать ENOMEM если в "доступной памятью" своп включен.
А во фре malloc возвращает NULL только при превышении лимитов.
И процессы умирали по KILL а не SEGV [причем умирают необязательно memory
hog ;)]
With best regards, Dmitry Miloserdov. E-mail: dmitry@bis.ru
--- ifmail v.2.15dev5.3
* Origin: Demos online service (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/6577242f9b9c.html, оценка из 5, голосов 10
|