Home » Asterisk » traps: asterisk trap invalid opcode

traps: asterisk trap invalid opcode

Столкнулся на днях со странной ошибкой asterisk. Мне нужно было перенести виртуальную машину с настроенной телефонией с одного гипервизора Hyper-V на другой. Воспользовался штатным функционалом экспорта импорта, но виртуалка не завелась на новом месте.

Углубленный онлайн-курс по MikroTik

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.

Точнее не завелся сам астериск. Виртуальная машина нормально запустилась. Но asterisk не работал. Он безуспешно пытался стартовать, при этом в логах /var/log/messages были следующие сообщения:

Nov  4 22:39:50 asterisk kernel: traps: asterisk[56183] trap invalid opcode ip:7fdba37acec6 sp:7ffd14936730 error:0 in codec_lpc10.so[7fdba37a8000+d000]
Nov  4 22:40:21 asterisk kernel: traps: asterisk[56358] trap invalid opcode ip:7f9da4abeec6 sp:7ffd4f0f4fd0 error:0 in codec_lpc10.so[7f9da4aba000+d000]
Nov  4 22:40:50 asterisk kernel: traps: asterisk[56511] trap invalid opcode ip:7f4c39587ec6 sp:7fff445bba50 error:0 in codec_lpc10.so[7f4c39583000+d000]
Nov  4 22:41:21 asterisk kernel: traps: asterisk[56672] trap invalid opcode ip:7f65e7730ec6 sp:7fff404edab0 error:0 in codec_lpc10.so[7f65e772c000+d000]
Nov  4 22:41:51 asterisk kernel: traps: asterisk[56844] trap invalid opcode ip:7f547328bec6 sp:7ffda3ba3c90 error:0 in codec_lpc10.so[7f5473287000+d000]
Nov  4 22:42:21 asterisk kernel: traps: asterisk[56999] trap invalid opcode ip:7f89929deec6 sp:7ffd458d1430 error:0 in codec_lpc10.so[7f89929da000+d000]

Я сначала подумал, что что-то не так с виртуалкой. Вместо импорта, сделал на новом гипервизоре виртуальную машину и прицепил к ней жесткий диск. Загрузился с тем же результатом. Все работает, кроме астериска. Дело происходит на CentOS 7. Asterisk готовил по своей же статье - настройка asterisk, которая не раз была проверена.

Начал гуглить и с удивлением обнаружил, что таких ошибок почти нет. Сходу я вообще ничего не нашел по своей теме. Начал переделывать поисковые запросы и немного приблизился в разгадке. Проблема кроется в типе процессора и сборке астера из исходников. Скажу сразу, что помогло мне решить проблему. Я пересобрал asterisk из исходников, добавив флаги:

./configure --libdir=/usr/lib64 CC="gcc -O3" CFLAGS=-O3

А затем в menuselect поставил галочку в разделе Compiler Flags в пункте DONT_OPTIMIZE. По идее, этот параметр можно было добавить к опции ./configure, но я, чтобы не ошибиться, решил через меню чекнуть. В итоге пересобрал так и asterisk заработал.

Если вам это не поможет, попробуйте добавить ключ CFLAGS=-mtune=native. Я видел и такую рекомендацию.

Для отладки и тестирования работы voip я рекомендую сервис Zadarma. Плюс его в том, что после регистрации вы получите настройки пира для внутренней сети оператора. И внутри этой сети вы можете бесплатно звонить. Например, я одного пира регистрирую на sip клиенте смартфона и с него звоню на второй аккаунт, пир от которого настроен в астериске. Таким образом эмулирую внешний звонок. Удобно отлаживать различные конфигурации звонков, не требуя платного подключения.

Другие материалы по asterisk:

Онлайн-курс по устройству компьютерных сетей.

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

7 комментариев

  1. Блин, Володя, ты прям спаситель! Компания обзавелась новым сервером. Перенёс всё. Как дело дошло до телефонии (у меня qcow2 формат ВМ'ок) не мог понять почему не стартует астер. Вот только благодаря твоему мануалу решил проблему пересборкой астера. С меня пиво и кириешки...=)

  2. Аноним

    тоже столкнулся с такой же проблемой, использую veam для реплицирования виртуалок, но каждый раз пересобирать астер - не вариант, может есть какие нибудь настройки при сборке ядра- чтоб при смене железа он не крашился?

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

    • Давно хочу, никак не найду времени свои сборки на докере сделать. С виртуалками привык уже, но с докером во многих случаях будет удобнее и быстрее.

  3. Аноним

    почему не делаете сборку rpm?

    • В смысле почему? Потому что делать надо, а это время. Из исходников привык ставить, так быстрее.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar