Parsed test spec with 4 sessions starting permutation: d1a1 d2a2 e1l e2l d1a2 d2a1 d1c e1c d2c e2c step d1a1: SELECT lock_share(1,x), lock_excl(3,x) FROM bigt LIMIT 1; lock_share|lock_excl ----------+--------- 1| 1 (1 row) step d2a2: select lock_share(2,x) FROM bigt LIMIT 1; lock_share ---------- 1 (1 row) step e1l: SELECT lock_excl(1,x) FROM bigt LIMIT 1; step e2l: SELECT lock_excl(2,x) FROM bigt LIMIT 1; step d1a2: SET debug_parallel_query = on; SET parallel_setup_cost = 0; SET parallel_tuple_cost = 0; SET min_parallel_table_scan_size = 0; SET parallel_leader_participation = off; SET max_parallel_workers_per_gather = 3; SELECT sum(lock_share(2,x)) FROM bigt; step d2a1: SET debug_parallel_query = on; SET parallel_setup_cost = 0; SET parallel_tuple_cost = 0; SET min_parallel_table_scan_size = 0; SET parallel_leader_participation = off; SET max_parallel_workers_per_gather = 3; SELECT sum(lock_share(1,x)) FROM bigt; SET debug_parallel_query = off; RESET parallel_setup_cost; RESET parallel_tuple_cost; SELECT lock_share(3,x) FROM bigt LIMIT 1; step d1a2: <... completed> sum ----- 10000 (1 row) step d1c: COMMIT; step e1l: <... completed> lock_excl --------- 1 (1 row) step d2a1: <... completed> sum ----- 10000 (1 row) lock_share ---------- 1 (1 row) step e1c: COMMIT; step d2c: COMMIT; step e2l: <... completed> lock_excl --------- 1 (1 row) step e2c: COMMIT;