Главная / Справочник ошибок / Directum RX
Сервис RX не запустился
Hosting failed to start
«Hosting failed to start», «Application startup exception» и «Failed to get ping responses from N of N active silos» в логах Directum RX: сервис упал при старте. Частая причина в контейнерах: новый экземпляр не может связаться с прежними экземплярами кластера Orleans.
Что это значит
Сервис RX не смог стартовать и завершился. Hosting failed to start и Application startup exception это общая обёртка, причина в исключении внутри записи. Две самые частые:
- База данных недоступна при старте. Внутри будет ошибка подключения к PostgreSQL, например код
57P01или57P03, когда база перезапускается. - Кластер Orleans. Сервисы RX объединяют свои экземпляры в кластер на фреймворке Orleans. Новый экземпляр перед входом проверяет связь со всеми экземплярами, которые недавно отмечались как живые, и пишет
Failed to get ping responses from 1 of 1 active silos, если хотя бы один не ответил. Так бывает, когда прежний экземпляр только что убит (перезапуск пода, перенос на другой узел), а его запись в кластере ещё не устарела. Или когда порт кластера между экземплярами закрыт: сетевой политикой, межсетевым экраном.
BackgroundServiceExceptionBehavior is configured to StopHost значит, что упала фоновая служба внутри сервиса и сервис остановился целиком.
Как проверить
- Прочитать исключение внутри записи: ошибка базы, Orleans или другое.
- Для Orleans: адрес и порт в тексте
Failed to get response from: [S10.0.0.5:11111:...]показывают, к какому экземпляру не достучались. Существует ли ещё такой под или сервер:
kubectl get pods -o wide -n <namespace> | grep 10.0.0.5
- Не закрыт ли порт кластера между подами: проверить сетевые политики пространства имён.
Что сделать
- Если прежний экземпляр уже удалён, обычно достаточно подождать: его запись устареет, и следующий перезапуск пройдёт. Kubernetes перезапустит под сам.
- Если перезапуски идут по кругу дольше нескольких минут, проверить сетевую доступность портов кластера между всеми экземплярами сервиса.
- Если внутри ошибка базы, сначала восстановить СУБД, затем перезапустить сервисы, которые не поднялись.
Ошибка повторяется?
Запустите Диагностика: за полминуты он покажет состояние базы, брокера, поиска и сервера. С отчётом разберём причину за 30 минут бесплатного созвона.
Написать