Django OperationalError: ошибка SSL SYSCALL: обнаружен EOF - PullRequest
1 голос
/ 27 июня 2019

Я запускаю приложение, которое использует Django 1.10 в качестве ORM, подключающегося к БД Postgres (управляется AWS RDS).

Время от времени я получаю много OperationalError: Ошибка SSL SYSCALL: EOF обнаружил исключений, а затем все возвращается к нормальному состоянию, как никогда не происходило.

Я думаю, что это связано с ошибкой неожиданное EOF при подключении клиента с открытой транзакцией , как я вижу это в файлах журнала, но я не уверен.

Более полезная информация:

  • Это не проблема брандмауэра, поскольку мы используем только группы безопасности AWS, которые могут блокировать только те вещи, которые зависят от порта.
  • Запросы, получающие это исключение, очень просты, для возврата которых обычно требуются миллисекунды.
  • Память, процессор и дисковое пространство выглядят как обычно во время этих эпизодов.
  • Я подозреваю, что это не проблема блокировки таблицы, потому что после того, как все происходит, все возвращается на круги своя, я не могу сказать это наверняка, потому что Postgres не отображает старые блокировки, только текущие в реальном времени.

  • Мой Postgres Версия двигателя 9.6.8

  • Мы видим множество idle соединений в БД. это может быть связано?

1 Ответ

0 голосов
/ 27 июня 2019

Ошибка очень общая, это просто означает, что в сообщении TLS что-то не так.

Я приведу небольшой список возможных причин, без претензий на полноту.

  • Это может быть проблема с брандмауэром (вы исключили эту опцию).

  • Это может быть проблемой пересмотра ключа TLS.

    Это вызывало всевозможные проблемы с различными версиями OpenSSL и драйверами клиента и было прекращено в PostgreSQL 9.5, так что это может быть проблемой, только если вы используете старую и непатентованную версию сервера.

...