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

Asterisk crashed

0

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

[Apr 25 05:20:35] ERROR[872] cdr.c: Allocation Failure for a CDR!
удалить закрыть спам изменить тег редактировать

спросил 2011-04-26 16:27:41 +0400

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

обновил 2011-04-26 16:34:52 +0400

Comments

df -h , проверь место на винте alexcr ( 2011-04-26 16:43:39 +0400 )редактировать
много гигабайт еще свободных erizo ( 2011-04-26 17:01:18 +0400 )редактировать
А top чего говорит при работающей системе? Очень смахивает на утечку памяти.. Ничего еще не устанавливали на сервак? Zavr2008 ( 2011-04-27 09:25:24 +0400 )редактировать

3 Ответа

0

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

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

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

ответил 2011-04-27 06:33:18 +0400

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

обновил 2011-04-27 07:50:03 +0400

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

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

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

ответил 2011-04-27 11:09:13 +0400

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 - значит не смогло выделить кусок, значит вывести ошибку.

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

ответил 2011-04-27 22:09:20 +0400

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

обновил 2011-04-27 22:12:52 +0400

Comments

гм. а как этого избежать/бороться с этим? erizo ( 2011-04-28 12:41:31 +0400 )редактировать
ну это памяти не хвататет. никак не избежать. есть правда варианты. 1) включить своп 2)скомпилировать астериск с ключем low_memory. он будет меньше хотеть. может у вас чтото не так с библиотеками или самим астриском. попробуйте новую версию скомпилировать. или откл.чить selinux. или фиг его знает что сделать meral ( 2011-04-29 00:48:03 +0400 )редактировать
оперативки добавить, вариант? erizo ( 2011-04-29 11:42:34 +0400 )редактировать
1176 свободно.. не вариант.ибо надо найти куда ушел гиг. астриск прекрасно работает на 512. meral ( 2011-04-29 16:31:52 +0400 )редактировать
возможно, что потребление оперативки растет с количеством траффика на *? erizo ( 2011-05-05 12:22:53 +0400 )редактировать

Ваш ответ

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 ленту новостей

Статистика

Задан: 2011-04-26 16:27:41 +0400

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

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

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