2025-12-02 14:01:42.294 UTC psql postgres postgres [local] 7138 SELECT waiting 00000 > LOG: process 7138 still waiting for ShareLock on transaction 1292309444 after 1000.719 msIf I set client_connection_check_interval to 1000 (1 second):
2025-12-02 14:01:42.294 UTC psql postgres postgres [local] 7138 SELECT waiting 00000 > STATEMENT: SELECT pdata FROM parent WHERE pid = 1 FOR UPDATE;
2025-12-02 14:01:42.304 UTC psql postgres postgres [local] 7138 SELECT waiting 00000 > LOG: process 7138 still waiting for ShareLock on transaction 1292309444 after 1010.756 ms
2025-12-02 14:01:42.304 UTC psql postgres postgres [local] 7138 SELECT waiting 00000 > STATEMENT: SELECT pdata FROM parent WHERE pid = 1 FOR UPDATE;
2025-12-02 14:01:42.314 UTC psql postgres postgres [local] 7138 SELECT waiting 00000 > LOG: process 7138 still waiting for ShareLock on transaction 1292309444 after 1020.794 ms
2025-12-02 14:01:42.314 UTC psql postgres postgres [local] 7138 SELECT waiting 00000 > STATEMENT: SELECT pdata FROM parent WHERE pid = 1 FOR UPDATE;
2025-12-02 14:01:42.324 UTC psql postgres postgres [local] 7138 SELECT waiting 00000 > LOG: process 7138 still waiting for ShareLock on transaction 1292309444 after 1030.829 ms
2025-12-02 14:01:42.324 UTC psql postgres postgres [local] 7138 SELECT waiting 00000 > STATEMENT: SELECT pdata FROM parent WHERE pid = 1 FOR UPDATE;
2025-12-02 14:19:17.430 UTC psql postgres postgres [local] 7320 SELECT waiting 00000 > LOG: process 7320 still waiting for ShareLock on transaction 1292309446 after 108012.829 msAnd If I unset client_connection_check_interval config option, I don't get these messages, only initial message of lock and I don't have more messages about locks until it is resolved:
2025-12-02 14:19:17.430 UTC psql postgres postgres [local] 7320 SELECT waiting 00000 > STATEMENT: SELECT pdata FROM parent WHERE pid = 1 FOR UPDATE;
2025-12-02 14:19:18.430 UTC psql postgres postgres [local] 7320 SELECT waiting 00000 > LOG: process 7320 still waiting for ShareLock on transaction 1292309446 after 109012.946 ms
2025-12-02 14:19:18.430 UTC psql postgres postgres [local] 7320 SELECT waiting 00000 > STATEMENT: SELECT pdata FROM parent WHERE pid = 1 FOR UPDATE;
2025-12-02 14:19:19.430 UTC psql postgres postgres [local] 7320 SELECT waiting 00000 > LOG: process 7320 still waiting for ShareLock on transaction 1292309446 after 110013.104 ms
2025-12-02 14:19:19.430 UTC psql postgres postgres [local] 7320 SELECT waiting 00000 > STATEMENT: SELECT pdata FROM parent WHERE pid = 1 FOR UPDATE;
2025-12-02 14:19:20.430 UTC psql postgres postgres [local] 7320 SELECT waiting 00000 > LOG: process 7320 still waiting for ShareLock on transaction 1292309446 after 111013.235 ms
2025-12-02 14:19:20.430 UTC psql postgres postgres [local] 7320 SELECT waiting 00000 > STATEMENT: SELECT pdata FROM parent WHERE pid = 1 FOR UPDATE;
2025-12-02 15:04:07.214 UTC psql postgres postgres [local] 7680 SELECT waiting 00000 > STATEMENT: SELECT pdata FROM parent WHERE pid = 1 FOR UPDATE;For me it seems that there is a bug about these config parameters interaction, but I don't know if it is the desired behaviour.
2025-12-02 15:04:43.522 UTC psql postgres postgres [local] 7688 SELECT waiting 00000 > LOG: process 7688 detected deadlock while waiting for ShareLock on transaction 1292309452 after 1000.192 ms
2025-12-02 15:04:43.522 UTC psql postgres postgres [local] 7688 SELECT waiting 00000 > STATEMENT: SELECT pdata FROM parent WHERE pid = 1 FOR UPDATE;
2025-12-02 15:04:43.523 UTC psql postgres postgres [local] 7688 SELECT 40P01 > ERROR: deadlock detected
2025-12-02 15:04:43.523 UTC psql postgres postgres [local] 7688 SELECT 40P01 > STATEMENT: SELECT pdata FROM parent WHERE pid = 1 FOR UPDATE;
2025-12-02 15:04:43.523 UTC psql postgres postgres [local] 7680 SELECT waiting 00000 > LOG: process 7680 acquired ShareLock on transaction 1292309451 after 37309.305 ms
2025-12-02 15:04:43.523 UTC psql postgres postgres [local] 7680 SELECT waiting 00000 > STATEMENT: SELECT pdata FROM parent WHERE pid = 1 FOR UPDATE;