PostgreSQL

Idle transactions hold locks and block operations

critical
Connection ManagementUpdated Feb 26, 2026
Technologies:
How to detect:

Default idle_in_transaction_session_timeout of 0 (unlimited) allows idle transactions to hold locks indefinitely, blocking DDL and DML operations

Recommended action:

Set idle_in_transaction_session_timeout to 1-5 minutes to automatically terminate idle transactions. Monitor postgresql.sessions.idle_in_transaction_time and postgresql.locks. Check pg_stat_activity for long-running idle transactions.