Open
Description
I have been observing a strange behaviour where PostgreSQL backends created by node-postgres are hanging in ClientRead state.
cinema_data_task_executor=> SHOW statement_timeout;
statement_timeout
-------------------
10s
(1 row)
cinema_data_task_executor=> SELECT
cinema_data_task_executor-> psa1.backend_start,
cinema_data_task_executor-> psa1.pid,
cinema_data_task_executor-> now() - psa1.query_start duration,
cinema_data_task_executor-> psa1.query,
cinema_data_task_executor-> psa1.state,
cinema_data_task_executor-> psa1.application_name,
cinema_data_task_executor-> psa1.wait_event_type,
cinema_data_task_executor-> psa1.wait_event,
cinema_data_task_executor-> psa1.usename
cinema_data_task_executor-> FROM pg_stat_activity psa1
cinema_data_task_executor-> WHERE
cinema_data_task_executor-> psa1.pid = 29342 AND
cinema_data_task_executor-> psa1.state = 'active'
cinema_data_task_executor-> ORDER BY psa1.query_start ASC;
backend_start | pid | duration | query | state | application_name | wait_event_type | wait_event | usename
-------------------------------+-------+-----------------+------------------------------------------------------------------------------------------------------+--------+--------------------------+-----------------+------------+---------------------------
2019-08-20 20:25:00.282386+00 | 29342 | 00:08:02.920093 | UPDATE event_seating_lookup SET last_seen_at = now() WHERE id = $1 AND ended_at IS NULL RETURNING id | active | do-event-seating-lookups | Client | ClientRead | cinema_data_task_executor
(1 row)
In the above example you can see a backend with statement_timeout
set to 10 seconds. Meanwhile, the particular query has been running for 8 minutes. From Node.js perspective, the program is just hanging after sending the query.
There appears to be a case where node-postgres is stuck in ClientRead state.
Metadata
Metadata
Assignees
Labels
No labels