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

Asterisk 13.14 - Memory Allocation Failure in function ast_str_make_space [закрыт]

0

Добрый день, вопрос следующий: пытаюсь развернуть на Debian 9 Asterisk 13 (из его родных репозиториев) в связке с MariaDB из репозиториев mariadb (pjsip realtime).

~# mysql -Bse"select version();"
10.2.10-MariaDB-10.2.10+maria~stretch
~# asterisk -rx"core show version"
Asterisk 13.14.1~dfsg-2+deb9u2 built by buildd @ binet on a x86_64 running Linux on 2017-10-02 20:51:59 UTC

Realtime-базу импортировал из исходников с github, через alembic, переключившись на соответствующую ветку (13.14). Подключил её через odbc.

Вроде всё хорошо, инфа с базы подгружается, но в консоли астериска при попытке посмотреть вываливается следующая ошибка, причем для любых объектов (ps_aors, ps_endpoints и т.п.):

*CLI> pjsip show endpoints

 Endpoint:  201                                                  Unavailable   0 of inf
     InAuth:  201/201
        Aor:  201                                                1
  Transport:  transport-udp             udp      0      0  0.0.0.0:5060

 Endpoint:  202                                                  Unavailable   0 of inf
     InAuth:  202/202
        Aor:  202                                                1
  Transport:  transport-udp             udp      0      0  0.0.0.0:5060

[Nov 17 10:19:32] ERROR[4609] /build/asterisk-68Rwyd/asterisk-13.14.1~dfsg/include/asterisk/utils.h: Memory Allocation Failure in function ast_str_make_space at line 822 of /build/asterisk-68Rwyd/asterisk-13.14.1~dfsg/include/asterisk/strings.h
[Nov 17 10:19:32] ERROR[4609] /build/asterisk-68Rwyd/asterisk-13.14.1~dfsg/include/asterisk/utils.h: Memory Allocation Failure in function ast_str_make_space at line 822 of /build/asterisk-68Rwyd/asterisk-13.14.1~dfsg/include/asterisk/strings.h
[Nov 17 10:19:32] ERROR[4609] /build/asterisk-68Rwyd/asterisk-13.14.1~dfsg/include/asterisk/utils.h: Memory Allocation Failure in function ast_str_make_space at line 822 of /build/asterisk-68Rwyd/asterisk-13.14.1~dfsg/include/asterisk/strings.h
[Nov 17 10:19:32] ERROR[4609] /build/asterisk-68Rwyd/asterisk-13.14.1~dfsg/include/asterisk/utils.h: Memory Allocation Failure in function ast_str_make_space at line 822 of /build/asterisk-68Rwyd/asterisk-13.14.1~dfsg/include/asterisk/strings.h

На первый взгляд, на функциональность системы это не влияет, кроме того, что неудобно работать в CLI. Если выводить объекты, не из базы (например transports), то такой ошибки не возникает. Может кто сталкивался с подобным, как решили проблему? Или в какую сторону вообще копать?

UPD: Решилось заменой драйвера базы данных c MariaDB на MySQL

Было:

# /etc/odbcinst.ini
[MariaDB]
Description = ODBC for MariaDB
Driver=/usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so
Setup=/usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
FileUsage = 1

Стало:

# /etc/odbcinst.ini
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc5a.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmy5S.so
FileUsage = 1

Ну и соответственно:

sed -i "s/MariaDB/MySQL/" /etc/odbc.ini

UPD2: на драйвере MySQL некорректно работает UTF-8, т.ч. перехал обратно на MariaDB но на версию постарше, кодировка корректно отображается, ошибки в консоль не сыпит.

был драйвер mariadb-connector-odbc-2.0.15 стал mariadb-connector-odbc-2.0.14

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

спросил 2017-11-17 04:43:05 +0400

kiba Gravatar kiba
1 1 2

обновил 2017-11-29 08:24:25 +0400

Comments

а еше pjsip повисает под нагрузкой(средней уже). забейте. ставьте chan_sip если нет необходимости редких фишек pjsip

meral ( 2017-11-17 07:13:21 +0400 )редактировать

А еще имеет смысл собрать * из исходников, у меня не на одном сервере 13 и 14 версия под stretch работают без этих проблем.

tesak89 ( 2017-11-17 11:31:33 +0400 )редактировать

@meral это врядли дело в канальном драйвере, скорее проблема кроется в интеграции с odbc.

@tesak89 не хочется из исходников собирать, чтоб не ломать системные обновления.

kiba ( 2017-11-18 09:38:36 +0400 )редактировать

То есть, если очереди перевести в реалтайм и сделать queue show, та же ошибка будет? А res_mysql юзать пробовали?

tesak89 ( 2017-11-19 03:20:08 +0400 )редактировать

@tesak89 всё, решил проблему, решение в вопрос добавил.

kiba ( 2017-11-20 04:51:11 +0400 )редактировать

@kiba вопрос закройте и решение в ответ внесите тогда, пожалуйста. Вдруг, кому поможет.

tesak89 ( 2017-11-20 12:57:13 +0400 )редактировать

@tesak89 я бы с радостью, но кармы не хватает для закрытия )

kiba ( 2017-11-20 14:43:49 +0400 )редактировать

На драйвере MySQL никаких проблем с UTF не испытывал. Настройте корректно базу, ODBC и asterisk

tesak89 ( 2017-11-29 12:55:22 +0400 )редактировать

@tesak89 ну я столкнулся с проблемой, аналогичной описанной вот здесь https://community.freepbx.org/t/incorrect-handling-utf8mb4-with-cyrillic-in-sng7-fpbx-14-0-1rc1-11/41274/10 будет время, ещё поиграюсь с настройками драйверов. если вас не затруднит, посмотрел бы ваши настройки odbcinst.ini.

Подозреваю что надо было просто сделать sed -i s/libmyodbc5a/libmyodbc5w/ /etc/odbcinst.ini

kiba ( 2017-12-05 10:45:26 +0400 )редактировать

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

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

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

Статистика

Задан: 2017-11-17 04:43:05 +0400

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

Обновлен: Nov 29 '17

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