Проблема

Пользователи RuPost испытывают проблемы при взаимодействии с почтой. Возможные проблемы:

  • с авторизацией в почтовом клиенте;
  • с отправкой и получением сообщений.

Проблема является плавающей и может затронуть не всех пользователей, может возникнуть или пропасть после перезагрузки сервера или повторного ввода узла RuPost в эксплуатацию.

Диагностика

  • Проверить версии, указанные в базах rupost и rupost_gamma (эти базы чередуются во время непрерывного обновления):
    psql -h localhost -U rupost -d rupost -c "SELECT * from alembic_version;"
    psql -h localhost -U rupost -d rupost_gamma -c "SELECT * from alembic_version;"
    Версии совпадают.

Возможная причина: Две актуальные версии в разных базах данных. Перейти к решению.


  • Проверить файл /var/log/rupost/monitor.log на наличие сообщений вида:

    2023-12-14 13:22:22+03:00 - Monitor - INFO - None - - - - - 2632d942-dcde-4fd9-96c4-5e354c2b7f75 - 10.177.132.243:5000 - - (PushStatusGetter.__call__) Сервис получения текущего статуса push уведомлений. - 2023-12-14 13:22:22+03:00 - Monitor - CRITICAL - None - - - Traceback (most recent call last): 
    ...
    ... 
    psycopg2.OperationalError: connection to server at "127.0.0.1", port 5432 failed: ВАЖНО: извините, уже слишком много клиентов connection to server at "127.0.0.1", port 5432 failed: ВАЖНО: извините, уже слишком много клиентов
    2024-04-25 14:39:23+05:00 - Monitor - ERROR - None - 10.177.132.243: https://mail.astra.lan:5000/api - a43c85b8-4092-401f-a4c4-dea4464a1cd5 -  -  - ae374e56-5751-4d1d-af67-997cb9504e16 - 10.177.132.243:5000 - 51200 - Ошибка подключения к базе данных - (psycopg2.OperationalError) connection to server at "127.0.0.1", port 5432 failed: ВАЖНО:  оставшиеся слоты подключений зарезервированы для подключений суперпользователя (не для репликации)
    sqlalchemy.exc.TimeoutError: QueuePool limit of size 5 overflow 10 reached, connection timed out, timeout 30.00

Возможная причина: Малое значение параметра max_connections. Перейти к решению.


  • Проверить состояние сервиса RuPost:
    sudo systemctl status rupost

    Проверить появляется ли при этом ошибка:

    JSONDecodeError: Expecting value: line 1 column 1 (char 0)
  • Убедиться, что сервис RuPost не запущен.

Возможная причина: Поврежден конфигурационный файл RuPost. Перейти к решению.


  • Проверить журналы Patroni на наличие ошибок:
    ПАНИКА: не удалось считать правильную запись контрольной точки

Возможная причина: Сбой репликации Patroni. Перейти к решению.


Возможные причины