VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Замерзает (зависает) Астериск 1.6.2.17.2

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

mozaix
Сообщения: 6
Зарегистрирован: 03 ноя 2011, 10:34

Замерзает (зависает) Астериск 1.6.2.17.2

Сообщение mozaix »

Замерзает (зависает) Астериск 1.6.2.17.2

Собственно сабж.
Астериск в процессах присутствует.
В консоли все пусто.
Перестает работать регистрация SIP-клиентов.
Невозможно выполнить исходящие вызовы, невозможно принять входящие вызовы.

В логах перед зависанием появляется большое к-во записей
audiohook.c: Read factory 0xb48aaf0 and write factory 0xb48b528 both fail to provide 160 samples

Все лечится тупой командой

service asterisk restart

Как избавиться от такого глюка?
Аватара пользователя
zzuz
Сообщения: 1658
Зарегистрирован: 21 сен 2010, 13:33
Контактная информация:

Re: Замерзает (зависает) Астериск 1.6.2.17.2

Сообщение zzuz »

Так зима на носу - холодно. Вы его к батареи поставьте, пусть согреется.

А по теме.. откуда и как собран сервис? Попробуйте пересобрать другую версию .
Линия24 - Системы Массового Телефонного Обслуживания
ded
Сообщения: 15618
Зарегистрирован: 26 авг 2010, 19:00

Re: Замерзает (зависает) Астериск 1.6.2.17.2

Сообщение ded »

mozaix, возможно - проблема №53
http://asterisk.ru/news/53
Проверяется командами
dig http://www.ru
dig http://www.mycompany.net @my.dns.server
dig http://www.mycompany.net @8.8.8.8

Сообщение
audiohook.c: Read factory 0xb48aaf0 and write factory 0xb48b528 both fail to provide 160 samples
наталкивает на мысль о буксующей дисковой подсистеме, вследствие интенсивной записи разговоров, если диск медленный - будет такое.
mozaix
Сообщения: 6
Зарегистрирован: 03 ноя 2011, 10:34

Re: Замерзает (зависает) Астериск 1.6.2.17.2

Сообщение mozaix »

Суть в том, что сам астериск, и два РАБОЧИХ днс сервера, расположены в одной локальной сети. Между ними нет никаких фаеволов.
Разрешается все ровно. Проблем нет никаких. Разговоров пишется много (200 пользователей, и каждый пишется).
Записи создаются на дисковой полке, подключенной к лезвию (на котором сам астериск и расположен).
В общем дисковая подсистема быстрая!
Зависает астериск иногда по нескольку раз в сутки.
ded
Сообщения: 15618
Зарегистрирован: 26 авг 2010, 19:00

Re: Замерзает (зависает) Астериск 1.6.2.17.2

Сообщение ded »

Вопросов много. Ответов меньше.
http://lmgtfy.com/?q=audiohook.c%3A+Rea ... 60+samples
Задача в том, чтобы найти правильный.

дисковая полка, диски - fibre channel что ли? Тогда быстрые. :)
подключенной к blade - iSCSI? Fibre channel HBA?
mozaix
Сообщения: 6
Зарегистрирован: 03 ноя 2011, 10:34

Re: Замерзает (зависает) Астериск 1.6.2.17.2

Сообщение mozaix »

Да уж искади в инете то и не один раз. Сюда обратились только потому, что везде люди задают ВОТ ТАКОЙ ЖЕ вопрос как и я, а ответов на эти вопросы нет.
Да у нас FC. Сама полка оборудована sas винтами - от нее в FC Switch от него уже в блейд через HBA.
Посему быстро.
Что делать то?
Блин вопрос то не праздный.
Фактиечские если бы были петли, то это было бы заметно по load average или еще какой другой криминал бы.
А тут к-во звонков не слишком большое, а виснет служба и все. И в логах на время зависания, т.е. с момента как она зависла и до момента как ее оживишь нет нифига. Сообщения, о которых я писал накапливаются ПЕРЕД появлением глюка. Может это накопительный баг.
Кто может помочь?
ded
Сообщения: 15618
Зарегистрирован: 26 авг 2010, 19:00

Re: Замерзает (зависает) Астериск 1.6.2.17.2

Сообщение ded »

Вот кусок кода, ответственный за это

Код: Выделить всё

static struct ast_frame *audiohook_read_frame_both(struct ast_audiohook *audiohook, size_t samples)
{
        int i = 0, usable_read, usable_write;
        short buf1[samples], buf2[samples], *read_buf = NULL, *write_buf = NULL, *final_buf = NULL, *data1 = NULL, *data2 = NULL;
        struct ast_frame frame = {
                .frametype = AST_FRAME_VOICE,
                .subclass = AST_FORMAT_SLINEAR,
                .data = NULL,
                .datalen = sizeof(buf1),
                .samples = samples,
        };

        /* Make sure both factories have the required samples */
        usable_read = (ast_slinfactory_available(&audiohook->read_factory) >= samples ? 1 : 0);
        usable_write = (ast_slinfactory_available(&audiohook->write_factory) >= samples ? 1 : 0);

        if (!usable_read && !usable_write) {
                /* If both factories are unusable bail out */
                ast_debug(1, "Read factory %p and write factory %p both fail to provide %zd samples\n", &audiohook->read_factory, &audiohook->write_factory, samples);
                return NULL;
        }
Могу программеры что-то сказать по этому поводу?

Могут быть глюки уровня модулей НВА ядра Линукс.
Проверить например так:
1) воткнуть в Астериск USB флэшку, смонтировать, и перенсти для теста запись на неё. На день какой-нить 4ГБ хватит. Если проблемы не будет
2) попытаться подключить внешний USB-диск.
Несмотря на то, что на первый взгляд эти варианты медленнее, чем FC, нужно попробовать просто, чтобы обойти дрова другими дровами.
Как-то так.
yuriyv
Сообщения: 5
Зарегистрирован: 10 ноя 2011, 14:27

Re: Замерзает (зависает) Астериск 1.6.2.17.2

Сообщение yuriyv »

asterisk на виртуальном сервере установлен?
jugatsu
Сообщения: 298
Зарегистрирован: 31 май 2011, 15:56

Re: Замерзает (зависает) Астериск 1.6.2.17.2

Сообщение jugatsu »

Похоже всего лишь на обычный deadlock. Как собран asterisk? Что мешает попробовать новые версии 1.6.2.20 или 1.8.7.1? Пересоберите с DONT_OPTIMIZE и выполните соответствующие действия, указанные по ссылке https://wiki.asterisk.org/wiki/display/ ... +Backtrace. Но хочу разочаровать, даже грамотно собранный дебаг и открытие тикета на баг-трекере digium'а, вряд ли даст хоть какой-то результат, поскольку ветка 1.6.2.X уже не поддерживается https://wiki.asterisk.org/wiki/display/ ... k+Versions, так что любой баг, относящейся к версии 1.6.2.X будет проигнорирован. Предполагаемое решение: попробовать разные версии asterisk'а из ветки 1.6.2.X, например, последнюю 1.6.2.20, в надежде, что данный баг был исправлен. Или самый правильный вариант: собрать версию 1.8.7.1 в /opt с опциями DONT_OPTIMIZE и BETTER_BACKTRACE и мониторить поведение.
ded
Сообщения: 15618
Зарегистрирован: 26 авг 2010, 19:00

Re: Замерзает (зависает) Астериск 1.6.2.17.2

Сообщение ded »

решение: попробовать разные версии asterisk'а из ветки 1.6.2.X, например, последнюю 1.6.2.20, в надежде, что данный баг был исправлен.
Моожет всё же 1.6.2.28?
Или самый правильный вариант: собрать версию 1.8.7.1 в /opt с опциями DONT_OPTIMIZE и BETTER_BACKTRACE и мониторить поведение.
Это из серии - нужно переустановить Windows.
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH