Opened 2 years ago
Closed 2 years ago
#397 closed баг (invalid)
RTP LOS при настройках VAD и G.729
Reported by: | san | Owned by: | alx |
---|---|---|---|
Priority: | средний | Milestone: | 1 очередь |
Component: | any | Keywords: | |
Cc: |
Description
У пользователя VE-02 RTP-потоки с VAD и G.729. В такой конфигурации авария LOS не должна возникать никогда, однако в очень редких случаях такое случается(три месяца между случаями).
В момент проишествия поток с обоих сторон перешел в состояние LOS и оставался в таком состоянии. Для решения проблемы пользователь создал новые RTP-потоки в обоих платах и они работают нормально, связность есть
На скриншотах блоки Васюган и Томск которые соединены RTP потоком, проблема проявилась примерно 7 сентября 2022.
Проблема наблюдалась на прошивке платы VE-02 ревизии 39 и ранее на ревизии 36
В комментах приложу конфигурационные файлы и логи.
Attachments (5)
Change History (8)
by , 2 years ago
by , 2 years ago
by , 2 years ago
Attachment: | config-Tomsk-07-09-2022.xml added |
---|
by , 2 years ago
Attachment: | config-S.Vasyugan-07-09-2022.xml added |
---|
by , 2 years ago
comment:1 by , 2 years ago
comment:2 by , 2 years ago
Да, действительно теперь сложно что-то понять.
Пользователь утверждал, что "ничего" не предшествовало возникновению аварии LOS, а все действия происходили позже. Но подтвердить это не возможно.
Я передам пользователю инструкцию, тикет вероятно можно пока закрыть, т.к. даже если это баг воспроизводится он по словам пользователя очень редко, если воспроизведётся, тогда и реоепнем.
comment:3 by , 2 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
Поскольку на обеих станциях в период возникновения инцидента имело место активное вмешательство в работу аппаратуры операторов
Пользователь подтверждает, что наблюдаемая ситуация, возможно результат несогласованного конфигурирования "с двух сторон".
За последние два месяца ничего похожего не воспроизводилось.
Во-первых, насколько я вижу, приложенные к тикету логи - это не логи плат VE-02, а логи плат SW-01. Поэтому приложенные логи мало что могут дать для анализа проблемы платы VE-02. Тем не менее, попробую проанализировать то, что есть.
Tomsk
Плата SW-01 в блоке Tomsk была загружена и обнаружила плату VE-02 в 05:11:41. В результате обнаружения плате VE-02 была передана конфигурация, записанная в конфиг-файле блока. С этого момента следующие 4 минуты плата VE-02 работала без аварий.
В 05:15:40 в плату VE-02 блока Tomsk оператором была загружена новая конфигурация. Спустя секунду, в 05:15:41, одновременно появились аварии LOS каналов 2 и 4. Мне кажется маловероятным, что данные факты случились независимо друг от друга. Есть подозрение, что авария LOS появилась в результате записи в плату новой конфигурации.
Полторы минуты спустя, в 05:17:17, была снова произведена запись конфигурации в плату VE-02. В следующую секунду (05:17:18) авария LOS канала 4 завершилась.
Далее в 05:17:38 снова была записана новая конфигурация в плату VE-02. В ту же секунду авария LOS появилась вновь. Судя по отметке времени, это та самая авария, которая показана на скриншоте в описании тикета.
Далее в 05:19:15 в плату VE-02 была снова записана новая конфигурация. В следующую секунду (05:19:16) авария LOS завершилась.
Далее было еще две записи конфигурации в плату VE-02 - в 05:19:16 и 05:21:02. В следующую секунду после последней записи (в 05:21:03) авария LOS вновь возникла.
Думаю, что нет смысла продолжать анализ данного лога. Мне кажется очевидным, что возникновение и завершение аварии LOS коррелирует с записями операторами (обрати внимание, что конфигурации записывались с разных адресов IP) настроек в плату VE-02. Уверен, что между этими событиями есть прямая причинно-следственная связь.
Последняя авария LOS завершалась в 08:04:00. После прекращения последней аварии LOS было сделано еще три различных записи конфигурации в плату VE-02 - в 08:04:1, в 08:04:12 и в 08:25:07 (то есть спустя 20 минут после прекращения последней аварии LOS). Затем в 08:25:29 конфигурация блока была сохранена в файл. Причем последняя запись конфигурации и ее сохранение выполнены с другого IP адреса. До этого с момента загрузки платы SW-01 сохранение конфигурации блока в файл не производилось.
Из сказанного выше очевидно, что приложенный файл конфигурации блока Tomsk не отражает ту конфигурацию, которая действовала в блоке в момент инцидента.
s.vasugan
Первая авария LOS платы VE-02 в слоте 10 7 сентября зафиксирована в 04:58:22 (канал 3). Секундой ранее (в 04:58:21) оператор произвел запись новой конфигурации в эту плату VE-02. До этой записи плата VE-02 на протяжение долгого времени (месяцы) работала без аварий.
Далее в 04:59:02 оператор снова записал новую конфигурацию в плату VE-02. В следующую секунду (04:59:03) начала фиксироваться авария LOS канала 6.
Далее много раз производилось изменение конфигурации блока...
Последняя зафиксированная команда LOS завершилась в 07:43:36. Секундой ранее, в 07:43:35, в плату VE-02 оператором была записана новая конфигурация.
Как и в случае блока Tomsk, мне кажется очевидным, что возникновение и завершение аварии LOS коррелирует с записями операторами (обратите внимание, что конфигурации записывались с разных адресов IP) настроек в плату VE-02. Уверен, что между этими событиями есть прямая причинно-следственная связь.
Согласно приложенному конфиг-файлу, в конфигурации каналов 3 и 6, которые и фиксировали аварию LOS, функция VAD отключена (отсутствует атрибут
noVAD=false
). В такой конфигурации авария LOS должна фиксироваться платой VE-02. Следовательно, наличие аварии LOS при таких настройках не является багом. Однако, в силу активного вмешательства операторов, изменявших настройки платы, невозможно с уверенностью судить о том, действительно ли функция VAD каналов 3 и 6 была отключена в период инцидента или нет.Общие выводы и рекомендации
Поскольку на обеих станциях в период возникновения инцидента имело место активное вмешательство в работу аппаратуры операторов, не представляется возможным подтвердить, что имел место баг в работе аппаратуры.
Для последующего более продуктивного анализа проблемы рекомендую:
При новом возникновении аварии LOS:
Я повторно проанализировал исходный код (первый раз анализ проводился по устному сообщению), но снова не нашел возможности возникновения ложной аварии. Далее идут комментарии скорее для меня самого.
В массиве
codec_list
для кодекаG729
полеenable_los
установлено в значение false. При наличии атрибутаnoVAD=false
переменнаяenable_vad
принимает значение true (строка 330). При применении полученных настроек, если установлен кодекG729
, переменнаяno_los_detection
получает значение, обратноеenable_los
, то есть true (строки 331 и 363).Далее, при старте потока RTP функция
RTPMonitorEna()
вызывается с первым аргументом, обратным значениюno_los_detection
, то есть false, что означает отключение мониторинга потока RTP. Кроме того, приno_los_detection
равном true не запускается таймер, по которому при отсутствии индикации наличия потока от MSP активируется авария LOS. Напротив, генерируется "синтетическая" индикация наличия потока для снятия возможной аварии LOS.Таким образом, никаких ошибок и "дыр", которые могли бы привести к ложной аварии LOS, в своем коде я не вижу. Могу гипотетически допустить баг в MSP, в результате которого MSP присылает индикацию отсутствия потока RTP несмотря на то, что ему запретили мониторить наличие потока... Но подобных жалоб от пользователей никогда ранее не поступало, поэтому считаю такое крайне маловероятным.