Skip to main content

Ошибка запуска реплик сервиса pgs_aristoteles

Описание проблемы:​

Ожидание запуска реплик сервиса Aristoteles длительное время (более 15 минут). В журнале событий сервиса Aristoteles возникают следующие ошибки:

pgs_aristoteles.2.14j3moa98529@pgs-rtk-2500-a-app-2 | Lock 'upgrade-head' is already acquired by another process.
pgs_aristoteles.2.e3s0r475sr9n@pgs-rtk-2500-a-app-2 | Lock 'upgrade-head' is already acquired by another process.
pgs_aristoteles.2.xbdzfgodyag6@pgs-rtk-2500-a-app-2 | Lock 'upgrade-head' is already acquired by another process.
pgs_aristoteles.2.e3s0r475sr9n@pgs-rtk-2500-a-app-2 | Lock 'upgrade-head' is already acquired by another process.

Ошибки появляются из-за ограничения: один экземпляр роли при запуске миграции. Если миграция завершилась с ошибками или не завершилась, возможно зависание процесса переключения миграции на следующий экземпляр роли.

Решение:​

  1. Проверить и запомнить количество реплик сервиса pgs_aristoteles с помощью команды:
docker service ls
  1. Отключить все реплики сервиса pgs_aristoteles, проскалировав 0 реплик с помощью команды:
docker service scale pgs_aristoteles=0
  1. Подключиться к веб-интерфейсу базы и найти коллекцию AvocadoLocks.

  2. Удалить запись лока из коллекции (коллекция содержит только одну запись (рис.).

  3. Восстановить количество реплик с помощью команды:

docker service scale pgs_aristoteles=<n>

где <n> — количество реплик, проверенное в п.1.