1Parsed test spec with 2 sessions 2 3starting permutation: beginrr1 beginrr2 donothing1 c1 donothing2 c2 show 4step beginrr1: BEGIN ISOLATION LEVEL REPEATABLE READ; 5step beginrr2: BEGIN ISOLATION LEVEL REPEATABLE READ; 6step donothing1: INSERT INTO ints(key, val) VALUES(1, 'donothing1') ON CONFLICT DO NOTHING; 7step c1: COMMIT; 8step donothing2: INSERT INTO ints(key, val) VALUES(1, 'donothing2'), (1, 'donothing3') ON CONFLICT DO NOTHING; 9step c2: COMMIT; 10step show: SELECT * FROM ints; 11key|val 12---+---------- 13 1|donothing1 14(1 row) 15 16 17starting permutation: beginrr1 beginrr2 donothing2 c2 donothing1 c1 show 18step beginrr1: BEGIN ISOLATION LEVEL REPEATABLE READ; 19step beginrr2: BEGIN ISOLATION LEVEL REPEATABLE READ; 20step donothing2: INSERT INTO ints(key, val) VALUES(1, 'donothing2'), (1, 'donothing3') ON CONFLICT DO NOTHING; 21step c2: COMMIT; 22step donothing1: INSERT INTO ints(key, val) VALUES(1, 'donothing1') ON CONFLICT DO NOTHING; 23step c1: COMMIT; 24step show: SELECT * FROM ints; 25key|val 26---+---------- 27 1|donothing2 28(1 row) 29 30 31starting permutation: beginrr1 beginrr2 donothing1 donothing2 c1 c2 show 32step beginrr1: BEGIN ISOLATION LEVEL REPEATABLE READ; 33step beginrr2: BEGIN ISOLATION LEVEL REPEATABLE READ; 34step donothing1: INSERT INTO ints(key, val) VALUES(1, 'donothing1') ON CONFLICT DO NOTHING; 35step donothing2: INSERT INTO ints(key, val) VALUES(1, 'donothing2'), (1, 'donothing3') ON CONFLICT DO NOTHING; <waiting ...> 36step c1: COMMIT; 37step donothing2: <... completed> 38ERROR: could not serialize access due to concurrent update 39step c2: COMMIT; 40step show: SELECT * FROM ints; 41key|val 42---+---------- 43 1|donothing1 44(1 row) 45 46 47starting permutation: beginrr1 beginrr2 donothing2 donothing1 c2 c1 show 48step beginrr1: BEGIN ISOLATION LEVEL REPEATABLE READ; 49step beginrr2: BEGIN ISOLATION LEVEL REPEATABLE READ; 50step donothing2: INSERT INTO ints(key, val) VALUES(1, 'donothing2'), (1, 'donothing3') ON CONFLICT DO NOTHING; 51step donothing1: INSERT INTO ints(key, val) VALUES(1, 'donothing1') ON CONFLICT DO NOTHING; <waiting ...> 52step c2: COMMIT; 53step donothing1: <... completed> 54ERROR: could not serialize access due to concurrent update 55step c1: COMMIT; 56step show: SELECT * FROM ints; 57key|val 58---+---------- 59 1|donothing2 60(1 row) 61 62 63starting permutation: begins1 begins2 donothing1 c1 donothing2 c2 show 64step begins1: BEGIN ISOLATION LEVEL SERIALIZABLE; 65step begins2: BEGIN ISOLATION LEVEL SERIALIZABLE; 66step donothing1: INSERT INTO ints(key, val) VALUES(1, 'donothing1') ON CONFLICT DO NOTHING; 67step c1: COMMIT; 68step donothing2: INSERT INTO ints(key, val) VALUES(1, 'donothing2'), (1, 'donothing3') ON CONFLICT DO NOTHING; 69step c2: COMMIT; 70step show: SELECT * FROM ints; 71key|val 72---+---------- 73 1|donothing1 74(1 row) 75 76 77starting permutation: begins1 begins2 donothing2 c2 donothing1 c1 show 78step begins1: BEGIN ISOLATION LEVEL SERIALIZABLE; 79step begins2: BEGIN ISOLATION LEVEL SERIALIZABLE; 80step donothing2: INSERT INTO ints(key, val) VALUES(1, 'donothing2'), (1, 'donothing3') ON CONFLICT DO NOTHING; 81step c2: COMMIT; 82step donothing1: INSERT INTO ints(key, val) VALUES(1, 'donothing1') ON CONFLICT DO NOTHING; 83step c1: COMMIT; 84step show: SELECT * FROM ints; 85key|val 86---+---------- 87 1|donothing2 88(1 row) 89 90 91starting permutation: begins1 begins2 donothing1 donothing2 c1 c2 show 92step begins1: BEGIN ISOLATION LEVEL SERIALIZABLE; 93step begins2: BEGIN ISOLATION LEVEL SERIALIZABLE; 94step donothing1: INSERT INTO ints(key, val) VALUES(1, 'donothing1') ON CONFLICT DO NOTHING; 95step donothing2: INSERT INTO ints(key, val) VALUES(1, 'donothing2'), (1, 'donothing3') ON CONFLICT DO NOTHING; <waiting ...> 96step c1: COMMIT; 97step donothing2: <... completed> 98ERROR: could not serialize access due to concurrent update 99step c2: COMMIT; 100step show: SELECT * FROM ints; 101key|val 102---+---------- 103 1|donothing1 104(1 row) 105 106 107starting permutation: begins1 begins2 donothing2 donothing1 c2 c1 show 108step begins1: BEGIN ISOLATION LEVEL SERIALIZABLE; 109step begins2: BEGIN ISOLATION LEVEL SERIALIZABLE; 110step donothing2: INSERT INTO ints(key, val) VALUES(1, 'donothing2'), (1, 'donothing3') ON CONFLICT DO NOTHING; 111step donothing1: INSERT INTO ints(key, val) VALUES(1, 'donothing1') ON CONFLICT DO NOTHING; <waiting ...> 112step c2: COMMIT; 113step donothing1: <... completed> 114ERROR: could not serialize access due to concurrent update 115step c1: COMMIT; 116step show: SELECT * FROM ints; 117key|val 118---+---------- 119 1|donothing2 120(1 row) 121 122