PG-LOCKS-001 · Sessões bloqueadas por locks neste momento
| Severidade | Confiança | Permissão | Aplica-se a |
|---|---|---|---|
| Alta | Confirmado | pg_monitor (pg_read_all_stats) |
PostgreSQL 14+, RDS, Aurora, Azure Flexible |
O que verifica
Sessões em pg_stat_activity esperando um lock (wait_event_type = 'Lock') há pelo menos 5 segundos (min_wait_s), com
o primeiro bloqueador de pg_blocking_pids(): estado, usuário, aplicação e idade da transação.
Por que importa
Locks fazem fila: um único ALTER TABLE esperando atrás de uma transação aberta faz todas as consultas seguintes naquela
tabela esperarem também.
Próxima ação
- Bloqueador
idle in transaction: uma aplicação deixou a transação aberta. Corrija a aplicação; configureidle_in_transaction_session_timeoutcomo rede de proteção. - Bloqueador
active: um comando longo. Como último recurso,SELECT pg_cancel_backend(<pid>)(cancela a consulta) antes depg_terminate_backend(<pid>)(fecha a sessão). - Para DDL em produção, use
SET lock_timeout = '3s'para a migração desistir em vez de travar a tabela.
Limitações
Um retrato só vê bloqueios no momento da verificação.