Что значит ошибка playStream actualSession doesn't exists, session name

ser

Member
Здравствуйте,

Столкнулись с проблемой черного экрана при работе через вебртц у некоторых пользователей.
У нас есть сеть сдн.
Публикации принимаются на приемный сервер в европе. Пользователь из америки видит публикацию из европы. Но у пользователя из европы черный экран

23:46:58,809 ERROR MediaHandler - API-ASYNC-pool-7-thread-891 playStream actualSession doesn't exists, session name fghjrtyu_send
23:47:12,967 ERROR MediaHandler - API-ASYNC-pool-7-thread-895 playStream actualSession doesn't exists, session name fghjrtyu_send
23:47:15,661 ERROR MediaHandler - API-ASYNC-pool-7-thread-889 playStream actualSession doesn't exists, session name fghjrtyu_send
23:47:18,336 ERROR MediaHandler - API-ASYNC-pool-7-thread-881 playStream actualSession doesn't exists, session name fghjrtyu_send
23:47:21,013 ERROR MediaHandler - API-ASYNC-pool-7-thread-883 playStream actualSession doesn't exists, session name fghjrtyu_send
23:47:23,677 ERROR MediaHandler - API-ASYNC-pool-7-thread-890 playStream actualSession doesn't exists, session name fghjrtyu_send
23:47:26,320 ERROR MediaHandler - API-ASYNC-pool-7-thread-886 playStream actualSession doesn't exists, session name fghjrtyu_send


На форуме нашли тему
Проблема с сертификатом

Но так и не поняли что значит ошибка playStream actualSession doesn't exists на приемном сервере.
Очень похоже что стрим от пользователя из америки не принимается поэтому и черный экран при просмотре.

Можете объяснить значение "playStream actualSession doesn't exists" ?
 

Max

Administrator
Staff member
Добрый день.
Ошибка actualSession doesn't exists означает, что поток с таким именем не опубликован на сервере, с которого зритель пытается его играть. В применении к CDN это может означать, что edge сервер, к которому подключается зритель, не может забрать поток с origin сервера.
Если поток публикуется на origin, но недоступен на edge, нужно:
1. Проверить, что поток проигрывается непосредственно с origin сервера
2. Проверить, что серверы в CDN видят друг друга, используя REST API запрос /cdn/show_nodes (см Мониторинг состояния служебных соединений (сигналинга) в CDN). В списке ответа с origin должен быть виден edge сервер и наоборот
3. Убедиться, что имя потока, который запрашивается с edge сервера, соответствует тому, под которым поток опубликован на origin сервере
Уточните, пожалуйста, структуру CDN:
1. На какой сервер публикуется поток?
2. С какого сервера пытаетесь играть поток?
3. Какая версия WCS установлена на серверах?
 

ser

Member
При сдн нельзя же проигрывать стримы через origin ? Или я не так понял
upd: проигравать с origin можно.

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

1. Приемный находится в Польше.
Транскодер Франция.
Ноды: Франция и Калифорния
2. с ближайщих нод
3. Версия 5.2.2008
 
Last edited:

ser

Member
1. Публикация идет на приемный сервер. В Польшу
Публикации на транскодер и ноду невозможна же. Верно ?
 

ser

Member
`Ошибка actualSession doesn't exists означает, что поток с таким именем не опубликован на сервере, с которого зритель пытается его играть.`

Такое сообщение может быть когда транскодер запрашивает с приемного этот поток ?
Например пользователь с америки еще не успел(или не смог) сделать публикацию а пользователь из евпропы уже запрашивает его стрим
 

Max

Administrator
Staff member
Публикации на транскодер и ноду невозможна же. Верно ?
По умолчанию возможна. Публикация на другие типы серверов, кроме origin, отключается настройкой
Code:
cdn_role_strict=true
Такое сообщение может быть когда транскодер запрашивает с приемного этот поток ?
Например пользователь с америки еще не успел(или не смог) сделать публикацию а пользователь из евпропы уже запрашивает его стрим
Да, такое может быть. Если стрим еще не опубликован на origin, но его уже запросили с edge (по имени напрямую или с указанием профиля транскодирования), на edge будет такое сообщение.
 

ser

Member
Спасибо. Будем выяснять почему пользователь в америке не смог сделать публикацию в Польшу.

Как вариант хотели сделать еще один приемный сервер в америке. Будет ли от этого толк?
Или лучше понять почему именно этот пользователь не смог пушнуть стрим
 

Max

Administrator
Staff member
Немного скорректирую терминологию:

Origin - Польша
Transcoder - Франция
Edge1 Edge2 - Франция и Калифорния

1. Пользователь1 предположительно опубликовал поток на сервер Origin с именем fghjrtyu_send.
2. Пользователь2 запросил на воспроизведение playStream поток fghjrtyu_send с сервера Edge2

Ожидаемое поведение:

1. Если на Edge2 сервере сконфигурирован профиль транскодинга _send, то Edge2 обратится к Транскодер серверу чтобы получить стрим по этому профилю, например fghjrtyu 720p.

или

2. Если _send это не профиль, а просто часть имени стрима, тогда Edge2 должен запросить оригинальный стрим fghjrtyu_send с Origin-сервера без прохождения через Транскодер.

Как вариант хотели сделать еще один приемный сервер в америке. Будет ли от этого толк?
Лучше понять что происходит. Без этого ввод нового сервера только усилит неопределенность.

Как действовать:

1. Убедиться, что стрим опубликован на Origin сервере
Code:
REST JSON POST
https://origin:8444/rest-api/stream/find {"name":"fghjrtyu_send", "display":["metrics"]}
2. Убедиться, что стрим есть в маршрутах CDN
Code:
REST JSON POST
https://origin:8444/rest-api/cdn/stream/show_routes {"streamName":"fghjrtyu_send"}
3. Убедиться, что стрим играет напрямую с Origin - сервера
Code:
https://origin:8444/client2/examples/demo/streaming/player/player.html?streamName=fghjrtyu_send
4. Убедиться, что стрим играет напрямую с Edge2 - сервера
Code:
https://edge2:8444/client2/examples/demo/streaming/player/player.html?streamName=fghjrtyu_send
Ретроспективные проверки:

5. Проанализировать на Origin cdr - логи /usr/local/FlashphonerWebCallServer/logs/cdr/sdr.log (hourly rotated)
Был ли стрим fghjrtyu_send на сервере Origin во время его запроса с Edge

Дополнительный мониторинг:

В последних релизах работает подсистема логгирования всех событий в базу ClickHouse.
Мы рекомендовали бы выделить сервер для записи метрик и событий чтобы быстро разбирать подобные инциденты.
 
Last edited:

ser

Member
2. Если _send это не профиль, а просто часть имени стрима, тогда Edge2 должен запросить оригинальный стрим fghjrtyu_send с Origin-сервера без прохождения через Транскодер.
у нас этот вариант.
сейчас посмотрели что просмотр стрима в европе был не с edge1(Франция) а с origin без транскодинга.
спасибо за резвернутый ответ


В последних релизах работает подсистема логгирования всех событий в базу ClickHouse.
еще не настроено. спасибо за подсказку


В логах нашел странность. Почему то время записи не по порядку в конце
1719312363493.png
 

Max

Administrator
Staff member
В логах нашел странность. Почему то время записи не по порядку в конце
Code:
start;mediaProvider;name;mediaSessionId;duration;disposition;info;type;subscribers;
Это время начала стрима, а не время записи строки.
Время записи строки будет start + duration. И эти значения уже будут идти по порядку.
 
Top