Parsed test spec with 2 sessions starting permutation: s1_begin s1_lcksvpt s1_tuplock1 s2_tuplock1 s1_commit step s1_begin: BEGIN; step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo; a - 1 (1 row) step s1_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE; a - 1 (1 row) step s2_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE; a - 1 (1 row) step s1_commit: COMMIT; starting permutation: s1_begin s1_lcksvpt s1_tuplock1 s2_tuplock2 s1_commit step s1_begin: BEGIN; step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo; a - 1 (1 row) step s1_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE; a - 1 (1 row) step s2_tuplock2: SELECT * FROM multixact_conflict FOR SHARE; a - 1 (1 row) step s1_commit: COMMIT; starting permutation: s1_begin s1_lcksvpt s1_tuplock1 s2_tuplock3 s1_commit step s1_begin: BEGIN; step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo; a - 1 (1 row) step s1_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE; a - 1 (1 row) step s2_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE; a - 1 (1 row) step s1_commit: COMMIT; starting permutation: s1_begin s1_lcksvpt s1_tuplock1 s2_tuplock4 s1_commit step s1_begin: BEGIN; step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo; a - 1 (1 row) step s1_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE; a - 1 (1 row) step s2_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE; step s1_commit: COMMIT; step s2_tuplock4: <... completed> a - 1 (1 row) starting permutation: s1_begin s1_lcksvpt s1_tuplock2 s2_tuplock1 s1_commit step s1_begin: BEGIN; step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo; a - 1 (1 row) step s1_tuplock2: SELECT * FROM multixact_conflict FOR SHARE; a - 1 (1 row) step s2_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE; a - 1 (1 row) step s1_commit: COMMIT; starting permutation: s1_begin s1_lcksvpt s1_tuplock2 s2_tuplock2 s1_commit step s1_begin: BEGIN; step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo; a - 1 (1 row) step s1_tuplock2: SELECT * FROM multixact_conflict FOR SHARE; a - 1 (1 row) step s2_tuplock2: SELECT * FROM multixact_conflict FOR SHARE; a - 1 (1 row) step s1_commit: COMMIT; starting permutation: s1_begin s1_lcksvpt s1_tuplock2 s2_tuplock3 s1_commit step s1_begin: BEGIN; step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo; a - 1 (1 row) step s1_tuplock2: SELECT * FROM multixact_conflict FOR SHARE; a - 1 (1 row) step s2_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE; step s1_commit: COMMIT; step s2_tuplock3: <... completed> a - 1 (1 row) starting permutation: s1_begin s1_lcksvpt s1_tuplock2 s2_tuplock4 s1_commit step s1_begin: BEGIN; step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo; a - 1 (1 row) step s1_tuplock2: SELECT * FROM multixact_conflict FOR SHARE; a - 1 (1 row) step s2_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE; step s1_commit: COMMIT; step s2_tuplock4: <... completed> a - 1 (1 row) starting permutation: s1_begin s1_lcksvpt s1_tuplock3 s2_tuplock1 s1_commit step s1_begin: BEGIN; step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo; a - 1 (1 row) step s1_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE; a - 1 (1 row) step s2_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE; a - 1 (1 row) step s1_commit: COMMIT; starting permutation: s1_begin s1_lcksvpt s1_tuplock3 s2_tuplock2 s1_commit step s1_begin: BEGIN; step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo; a - 1 (1 row) step s1_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE; a - 1 (1 row) step s2_tuplock2: SELECT * FROM multixact_conflict FOR SHARE; step s1_commit: COMMIT; step s2_tuplock2: <... completed> a - 1 (1 row) starting permutation: s1_begin s1_lcksvpt s1_tuplock3 s2_tuplock3 s1_commit step s1_begin: BEGIN; step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo; a - 1 (1 row) step s1_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE; a - 1 (1 row) step s2_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE; step s1_commit: COMMIT; step s2_tuplock3: <... completed> a - 1 (1 row) starting permutation: s1_begin s1_lcksvpt s1_tuplock3 s2_tuplock4 s1_commit step s1_begin: BEGIN; step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo; a - 1 (1 row) step s1_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE; a - 1 (1 row) step s2_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE; step s1_commit: COMMIT; step s2_tuplock4: <... completed> a - 1 (1 row) starting permutation: s1_begin s1_lcksvpt s1_tuplock4 s2_tuplock1 s1_commit step s1_begin: BEGIN; step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo; a - 1 (1 row) step s1_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE; a - 1 (1 row) step s2_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE; step s1_commit: COMMIT; step s2_tuplock1: <... completed> a - 1 (1 row) starting permutation: s1_begin s1_lcksvpt s1_tuplock4 s2_tuplock2 s1_commit step s1_begin: BEGIN; step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo; a - 1 (1 row) step s1_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE; a - 1 (1 row) step s2_tuplock2: SELECT * FROM multixact_conflict FOR SHARE; step s1_commit: COMMIT; step s2_tuplock2: <... completed> a - 1 (1 row) starting permutation: s1_begin s1_lcksvpt s1_tuplock4 s2_tuplock3 s1_commit step s1_begin: BEGIN; step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo; a - 1 (1 row) step s1_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE; a - 1 (1 row) step s2_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE; step s1_commit: COMMIT; step s2_tuplock3: <... completed> a - 1 (1 row) starting permutation: s1_begin s1_lcksvpt s1_tuplock4 s2_tuplock4 s1_commit step s1_begin: BEGIN; step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT foo; a - 1 (1 row) step s1_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE; a - 1 (1 row) step s2_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE; step s1_commit: COMMIT; step s2_tuplock4: <... completed> a - 1 (1 row) starting permutation: s1_begin s1_tuplock1 s2_tuplock1 s1_commit step s1_begin: BEGIN; step s1_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE; a - 1 (1 row) step s2_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE; a - 1 (1 row) step s1_commit: COMMIT; starting permutation: s1_begin s1_tuplock1 s2_tuplock2 s1_commit step s1_begin: BEGIN; step s1_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE; a - 1 (1 row) step s2_tuplock2: SELECT * FROM multixact_conflict FOR SHARE; a - 1 (1 row) step s1_commit: COMMIT; starting permutation: s1_begin s1_tuplock1 s2_tuplock3 s1_commit step s1_begin: BEGIN; step s1_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE; a - 1 (1 row) step s2_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE; a - 1 (1 row) step s1_commit: COMMIT; starting permutation: s1_begin s1_tuplock1 s2_tuplock4 s1_commit step s1_begin: BEGIN; step s1_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE; a - 1 (1 row) step s2_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE; step s1_commit: COMMIT; step s2_tuplock4: <... completed> a - 1 (1 row) starting permutation: s1_begin s1_tuplock2 s2_tuplock1 s1_commit step s1_begin: BEGIN; step s1_tuplock2: SELECT * FROM multixact_conflict FOR SHARE; a - 1 (1 row) step s2_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE; a - 1 (1 row) step s1_commit: COMMIT; starting permutation: s1_begin s1_tuplock2 s2_tuplock2 s1_commit step s1_begin: BEGIN; step s1_tuplock2: SELECT * FROM multixact_conflict FOR SHARE; a - 1 (1 row) step s2_tuplock2: SELECT * FROM multixact_conflict FOR SHARE; a - 1 (1 row) step s1_commit: COMMIT; starting permutation: s1_begin s1_tuplock2 s2_tuplock3 s1_commit step s1_begin: BEGIN; step s1_tuplock2: SELECT * FROM multixact_conflict FOR SHARE; a - 1 (1 row) step s2_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE; step s1_commit: COMMIT; step s2_tuplock3: <... completed> a - 1 (1 row) starting permutation: s1_begin s1_tuplock2 s2_tuplock4 s1_commit step s1_begin: BEGIN; step s1_tuplock2: SELECT * FROM multixact_conflict FOR SHARE; a - 1 (1 row) step s2_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE; step s1_commit: COMMIT; step s2_tuplock4: <... completed> a - 1 (1 row) starting permutation: s1_begin s1_tuplock3 s2_tuplock1 s1_commit step s1_begin: BEGIN; step s1_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE; a - 1 (1 row) step s2_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE; a - 1 (1 row) step s1_commit: COMMIT; starting permutation: s1_begin s1_tuplock3 s2_tuplock2 s1_commit step s1_begin: BEGIN; step s1_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE; a - 1 (1 row) step s2_tuplock2: SELECT * FROM multixact_conflict FOR SHARE; step s1_commit: COMMIT; step s2_tuplock2: <... completed> a - 1 (1 row) starting permutation: s1_begin s1_tuplock3 s2_tuplock3 s1_commit step s1_begin: BEGIN; step s1_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE; a - 1 (1 row) step s2_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE; step s1_commit: COMMIT; step s2_tuplock3: <... completed> a - 1 (1 row) starting permutation: s1_begin s1_tuplock3 s2_tuplock4 s1_commit step s1_begin: BEGIN; step s1_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE; a - 1 (1 row) step s2_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE; step s1_commit: COMMIT; step s2_tuplock4: <... completed> a - 1 (1 row) starting permutation: s1_begin s1_tuplock4 s2_tuplock1 s1_commit step s1_begin: BEGIN; step s1_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE; a - 1 (1 row) step s2_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE; step s1_commit: COMMIT; step s2_tuplock1: <... completed> a - 1 (1 row) starting permutation: s1_begin s1_tuplock4 s2_tuplock2 s1_commit step s1_begin: BEGIN; step s1_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE; a - 1 (1 row) step s2_tuplock2: SELECT * FROM multixact_conflict FOR SHARE; step s1_commit: COMMIT; step s2_tuplock2: <... completed> a - 1 (1 row) starting permutation: s1_begin s1_tuplock4 s2_tuplock3 s1_commit step s1_begin: BEGIN; step s1_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE; a - 1 (1 row) step s2_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE; step s1_commit: COMMIT; step s2_tuplock3: <... completed> a - 1 (1 row) starting permutation: s1_begin s1_tuplock4 s2_tuplock4 s1_commit step s1_begin: BEGIN; step s1_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE; a - 1 (1 row) step s2_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE; step s1_commit: COMMIT; step s2_tuplock4: <... completed> a - 1 (1 row)