psycopg2.errors.IdleInTransactionSessionTimeout: разрыв соединения из-за истечения времени ожидания в транзакции - PullRequest
0 голосов
/ 22 апреля 2020

У меня следующий журнал ошибок

     ERROR - 2020-04-22 09:32:38,508 - sqlalchemy.pool.impl.QueuePool: Exception during reset or similar
     Traceback (most recent call last):
       File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 693, in _finalize_fairy
         fairy._reset(pool)
       File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 880, in _reset
         pool._dialect.do_rollback(self)
       File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/default.py", line 538, in do_rollback
         dbapi_connection.rollback()
     psycopg2.errors.IdleInTransactionSessionTimeout: terminating connection due to idle-in-transaction timeout
     SSL connection has been closed unexpectedly

Есть идеи о том, как и как это исправить?

1 Ответ

0 голосов
/ 22 апреля 2020

Причина root в том, что у вас есть сеансы базы данных, которые начали транзакцию с BEGIN, но неактивны дольше, чем параметр PostgreSQL idle_in_transaction_session_timeout (определенный на уровне экземпляра PG):

  idle_in_transaction_session_timeout (integer)

   Terminate any session with an open transaction that has been idle for longer than the specified duration in milliseconds. This allows
   any locks held by that session to be released and the connection slot
   to be reused; it also allows tuples visible only to this transaction
   to be vacuumed. See Section 24.1 for more details about this.

   The default value of 0 disables this feature.

To чтобы исправить это, вам нужно либо исправить код приложения, чтобы он не занимал слишком долго незанятых транзакций, либо изменить параметр PG idle_in_transaction_session_timeout.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...