Republish stream failed

oioki

New Member
В конфигурации Origin -> Edge в некоторые моменты времени перестает работать репаблишинг с одного из Origin:
1. При появлении стрима на Origin, он не появляется на Edge.
2. В tcpdump отсутствуют запросы "GET /?action=stat&params=sip_calls,system_java_load_average" с поломанного Origin на Edge.
3. В серверном логе прекращают появляться записи "Republish stream"
Отправил на logs@flashphoner.com логи по этой проблеме.
Проблема уже встречалась ранее, в другом посте https://forum.flashphoner.com/threads/close-wait-1.11178/#post-14701
 

oioki

New Member
Добрый день.
Репликация поломалась и на втором Origin. Оставили эти серверы пока в таком состоянии. Можем выслать SSH-доступ, чтобы ускорить решение проблемы.
 

Max

Administrator
Staff member
Добрый день. Да, пришлите пожалуйста доступы. На месте проще логи анализировать.
Пока разбираем те, что пришли по почте.
 

oioki

New Member
Добрый день.
Отправил доступы на logs@flashphoner.com
Также, обратите внимание на вывод команды jmxterm в /root/jmxterm. Поток LoadBalancingThread-55 находится в состоянии RUNNABLE, у него непустой lockedMonitors и довольно большой stackTrace (по сравнению с рабочим сервером).
 

Max

Administrator
Staff member
В логах, которые вы прислали по почте нашли еще один deadlock в логе CemeteryDump.jstack
В сборке 2605 он должен быть исправлен.
Если еще появятся такие jstack-файлы - сообщите. Они чаще всего появляются на дедлоках.
После их устранения все должно работать корректно.
 

oioki

New Member
В CemeteryDump.jstack записи от 16-17 ноября, т.е. позавчера туда новых записей не попадало. Уверены, что обновление до 2605 поможет с проблемой отсутствия репаблишинга? Может быть, есть смысл поизучать этот сервер в проблемном состоянии?
 

Max

Administrator
Staff member
Да, оставьте. Проверим, возможно еще что-то найдем.
 

Max

Administrator
Staff member
По стеку видно что Origin пытается взять статистику с ноды, которая прописана в конфиге, но не может зачитать данные из сокета.
Из-за этого поток LoadBalancingThread останавливается и перестает делать re-publishing, ожидая данных от ноды.
По-умолчанию нода должна отдавать статистику по адресу http://host:8081?action=stat или https://host:8444?action=stat
Если не отдает, значит с ней что-то произошло и нужен доступ уже к Edge-серверу.

В сборке 2608 добавили таймауты
server.properties
Code:
http_client_connection_timeout=2000
http_client_connection_read_timeout=2000
Т.е. если коннект с Edge-нодой не установлен или не читаются данные 2 секунды, то выходить и давать потоку выполняться.
Обновитесь до этой сборки чтобы устранить проблему с остановкой re-publishing.

Для дальнейшей отладки можно добавить строку в конфиг WCS_HOME/conf/log4j.properties
Code:
log4j.logger.LoadBalancingThread=DEBUG
Ну и дальше нужно разбираться с Edge-нодой, почему она не отдает статистику. Присылайте к ней доступы, проверим.
 

oioki

New Member
Спасибо за оперативность!

По-умолчанию нода должна отдавать статистику по адресу http://host:8081?action=stat или https://host:8444?action=stat
Если не отдает, значит с ней что-то произошло и нужен доступ уже к Edge-серверу.
Дело в том, что у другого Origin-сервера в это же время все нормально с доступом к Edge.
Кстати, я вижу установленный коннект с проблемного Origin на Edge:
Code:
ESTAB      0      0      origin_ip:15698              edge_ip:8081                users:(("java",pid=6708,fd=1410))
Со стороны Edge тоже такое соединение есть, однако tcpdump показывает, что по нему не передается никаких данных (ждал около 20 минут).

Обновитесь до этой сборки чтобы устранить проблему с остановкой re-publishing.
Попробуем обновиться и выставить эти параметры уже в понедельник, чтобы не рисковать.
 

Max

Administrator
Staff member
В сборке 2605 произошла регрессия. Исправлена только начиная с 2613.
 
Top