Home » Asterisk » traps: asterisk trap invalid opcode

traps: asterisk trap invalid opcode

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

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Администратор Linux» в OTUS. Курс не для новичков, для поступления нужно пройти .

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

Онлайн курс "Администратор Linux"

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Администратор Linux» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Проверьте себя на вступительном тесте и смотрите программу детальнее по .

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

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

  1. Аватар

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

    • Zerox

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

    • Zerox

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

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

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

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