First time here? Check out the FAQ!

Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Asterisk crashed

0

Привет!
Вчера ночью * свалился. В логе нашел такую ошибку перед тем как * упал.
В интернетах ничего не нашел по этому поводу.
Кто-нибудь сталкивался с таким?

[Apr 25 05:20:35] ERROR[872] cdr.c: Allocation Failure for a CDR!

спросил Apr 26 '11

erizo Gravatar erizo
71 10 3 11
http://www.telefant.ee/

обновил Apr 26 '11

Comments

df -h , проверь место на винте alexcr (Apr 26 '11)edit
много гигабайт еще свободных erizo (Apr 26 '11)edit
А top чего говорит при работающей системе? Очень смахивает на утечку памяти.. Ничего еще не устанавливали на сервак? Zavr2008 (Apr 27 '11)edit

3 Ответа

0

При падении астериск, если запущен с опцией -g, должен создать core файл, по которому можно отследить точное место где астериск вывалился (не знаю есть ли ньюансы под фрей). Данная ошибка выдается тогда, когда calloc не смог выделить память, но в cdr.c везде данная ситуация проверяется.

Однако если память действительно кончилась и астериск не может её выделить, то упасть все может в любом другом месте.

ссылка удалить спам редактировать

ответил Apr 27 '11

igorg Gravatar igorg flag of Russian Federation
2244 3 7 40
http://igorg.ru/

обновил Apr 27 '11

0

сейчас top говорит примерно следующее:

last pid: 11662;  load averages:  0.49,  0.49,  0.40    up 1+00:00:05  10:10:44
58 processes:  1 running, 57 sleeping
CPU
:  0.3% user,  0.0% nice,  3.2% system,  1.3% interrupt, 95.2% idle
Mem: 49M Active, 573M Inact, 142M Wired, 112M Buf, 1176M Free
Swap: 8192M Total, 8192M Free

На сервере крутится только астериск и судя по логам заббикса, в момент падения астериска, действительно оперативки свободной было очень мало.
Эта проблема появляется из-за загруженности * я так понимаю?

ссылка удалить спам редактировать

ответил Apr 27 '11

erizo Gravatar erizo
71 10 3 11
http://www.telefant.ee/
0

это malloc ошибка. нет возможности выделить кусок памяти. как узнать: берешь сообщение и делаешь grep по исходникам астериска. ну тривиальное же действие. вот кусок кода:

 x = ast_calloc(1, sizeof(*x));
       
if (!x)
                ast_log
(LOG_ERROR,"Allocation Failure for a CDR!\n");

перевожу: если адрес для новой записи 0 - значит не смогло выделить кусок, значит вывести ошибку.

ссылка удалить спам редактировать

ответил Apr 27 '11

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

обновил Apr 27 '11

Comments

гм. а как этого избежать/бороться с этим? erizo (Apr 28 '11)edit
ну это памяти не хвататет. никак не избежать. есть правда варианты. 1) включить своп 2)скомпилировать астериск с ключем low_memory. он будет меньше хотеть. может у вас чтото не так с библиотеками или самим астриском. попробуйте новую версию скомпилировать. или откл.чить selinux. или фиг его знает что сделать meral (Apr 28 '11)edit
оперативки добавить, вариант? erizo (Apr 29 '11)edit
1176 свободно.. не вариант.ибо надо найти куда ушел гиг. астриск прекрасно работает на 512. meral (Apr 29 '11)edit
возможно, что потребление оперативки растет с количеством траффика на *? erizo (May 5 '11)edit

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: Apr 26 '11

Просмотрен: 378 раз

Обновлен: Apr 27 '11

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.