Parsed test spec with 2 sessions starting permutation: s1b s2b s1s s2u s2d s1l s2c s1c step s1b: BEGIN ISOLATION LEVEL REPEATABLE READ; step s2b: BEGIN; step s1s: SELECT * FROM foo; key value 1 1 step s2u: UPDATE foo SET value = 2 WHERE key = 1; step s2d: DELETE FROM foo; step s1l: SELECT * FROM foo FOR KEY SHARE; step s2c: COMMIT; step s1l: <... completed> error in steps s2c s1l: ERROR: could not serialize access due to concurrent update step s1c: COMMIT; starting permutation: s1b s2b s1s s2u s2d s1l s2r s1c step s1b: BEGIN ISOLATION LEVEL REPEATABLE READ; step s2b: BEGIN; step s1s: SELECT * FROM foo; key value 1 1 step s2u: UPDATE foo SET value = 2 WHERE key = 1; step s2d: DELETE FROM foo; step s1l: SELECT * FROM foo FOR KEY SHARE; step s2r: ROLLBACK; step s1l: <... completed> key value 1 1 step s1c: COMMIT; starting permutation: s1b s2b s1s s2u s2u2 s1l s2c s1c step s1b: BEGIN ISOLATION LEVEL REPEATABLE READ; step s2b: BEGIN; step s1s: SELECT * FROM foo; key value 1 1 step s2u: UPDATE foo SET value = 2 WHERE key = 1; step s2u2: UPDATE foo SET key = 2 WHERE key = 1; step s1l: SELECT * FROM foo FOR KEY SHARE; step s2c: COMMIT; step s1l: <... completed> error in steps s2c s1l: ERROR: could not serialize access due to concurrent update step s1c: COMMIT; starting permutation: s1b s2b s1s s2u s2u2 s1l s2r s1c step s1b: BEGIN ISOLATION LEVEL REPEATABLE READ; step s2b: BEGIN; step s1s: SELECT * FROM foo; key value 1 1 step s2u: UPDATE foo SET value = 2 WHERE key = 1; step s2u2: UPDATE foo SET key = 2 WHERE key = 1; step s1l: SELECT * FROM foo FOR KEY SHARE; step s2r: ROLLBACK; step s1l: <... completed> key value 1 1 step s1c: COMMIT;