Home » Asterisk » traps: asterisk trap invalid opcode

traps: asterisk trap invalid opcode

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

Онлайн-курс по Kubernetes – для разработчиков, администраторов, технических лидеров, которые хотят изучить современную платформу для микросервисов Kubernetes. Очень востребованный навык, который хорошо оплачивается. Курс не для новичков – нужно пройти .

Точнее не завелся сам астериск. Виртуальная машина нормально запустилась. Но 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. Я видел и такую рекомендацию.

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

Онлайн курс Основы сетевых технологий

Теоретический курс с самыми базовыми знаниями по сетям. Курс подходит и начинающим, и людям с опытом. Практикующим системным администраторам курс поможет упорядочить знания и восполнить пробелы. А те, кто только входит в профессию, получат на курсе базовые знания и навыки, без воды и избыточной теории. После обучения вы сможете ответить на вопросы:
  • На каком уровне модели OSI могут работать коммутаторы;
  • Как лучше организовать работу сети организации с множеством отделов;
  • Для чего и как использовать технологию VLAN;
  • Для чего сервера стоит выносить в DMZ;
  • Как организовать объединение филиалов и удаленный доступ сотрудников по vpn;
  • и многое другое.
Уже знаете ответы на вопросы выше? Или сомневаетесь? Попробуйте пройти тест по основам сетевых технологий. Всего 53 вопроса, в один цикл теста входит 10 вопросов в случайном порядке. Поэтому тест можно проходить несколько раз без потери интереса. Бесплатно и без регистрации. Все подробности на странице .

Помогла статья? Есть возможность отблагодарить автора

Автор Zerox

Zerox
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству.

4 комментария

  1. Аватар

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

    • Zerox

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

    • Zerox

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

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

Ваш e-mail не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.