|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Gleb Smirnoff 2:5020/400 31 Aug 2005 16:38:04 To : Timur Khanjanov Subject : Re: mpd, pppoe на куче интерфейсов и грабли, присыпанные листьями -------------------------------------------------------------------------------- Timur Khanjanov <intel@intrans.baku.az> wrote: >> TK> наступил вчера на вот такие грабли >> TK> если завести pppoe через mpd на более чем 64х физических интерфейсах >> TK> то на 65м получаем sigsegv и зависание mpd с полной загрузкой процессора >> TK> и отсутствием реакции на что бы то ни было кроме kill -9 >> TK> после копания в исходниках с gdb в зубах обнаружил следуещее >> TK> Массивы содержащие линки и бандлы - динамические и удлиняются через >> TK> функцию LengthenArray >> TK> но в файле pppoe.c видим следующее на 154й строке >> TK> int PppoeIfCount=0; >> TK> struct PppoeIf PppoeIfs[64]; итак - физические интерфейсы для линков >> TK> хранятся в _статическом_ массиве на 64 элемента смотрим дальше в функции >> TK> PppoeNodeUpdate производится его заполнение проверка на переполнение >> TK> массива _не производися_ в результате на 65м интерфейсе вот в этой строке >> TK> (~830) PppoeIfs[PppoeIfCount++].listen=0; нолик >> TK> записывается аккурат в указатель на массив бандлов и потом при попытке >> TK> добавить новый бандл получаем 11й сигнал дальше - больше - при приходе >> TK> сигнала мпд пытается всё закрыть опять лезет в массив бандлов опять >> TK> получает 11й сигнал и так пока его не снимут через kill -9 >> >> TK> пока прописал там размер массива на 256, но пожалуй там надо >> TK> сделать как в списках бандлов/линков динамический массив и >> TK> увеличение через LenghtenArray >> >> Шлите патчи. :) TK> как только - так сразу Ж8) TK> сходу могу только чтоб при превышении лимита матерился Уже будет намного лучше, чем то, что имеем сейчас. -- Totus tuus, Glebius. GLEBIUS-RIPN GLEB-RIPE --- ifmail v.2.15dev5.3 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.unix.bsd/6577f9e93822.html, оценка из 5, голосов 10
|