1Parsed test spec with 2 sessions 2 3starting permutation: s2b s1l s2u s2_blocker1 s2_unlock s2c 4pg_advisory_lock 5---------------- 6 7(1 row) 8 9step s2b: BEGIN; 10step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> 11step s2u: UPDATE foo SET value = 2 WHERE key = 1; 12step s2_blocker1: DELETE FROM foo; 13step s2_unlock: SELECT pg_advisory_unlock(0); 14pg_advisory_unlock 15------------------ 16t 17(1 row) 18 19step s2c: COMMIT; 20step s1l: <... completed> 21ERROR: could not serialize access due to concurrent update 22 23starting permutation: s2b s1l s2u s2_blocker2 s2_unlock s2c 24pg_advisory_lock 25---------------- 26 27(1 row) 28 29step s2b: BEGIN; 30step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> 31step s2u: UPDATE foo SET value = 2 WHERE key = 1; 32step s2_blocker2: UPDATE foo SET key = 2 WHERE key = 1; 33step s2_unlock: SELECT pg_advisory_unlock(0); 34pg_advisory_unlock 35------------------ 36t 37(1 row) 38 39step s2c: COMMIT; 40step s1l: <... completed> 41ERROR: could not serialize access due to concurrent update 42 43starting permutation: s2b s1l s2u s2_blocker3 s2_unlock s2c 44pg_advisory_lock 45---------------- 46 47(1 row) 48 49step s2b: BEGIN; 50step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> 51step s2u: UPDATE foo SET value = 2 WHERE key = 1; 52step s2_blocker3: UPDATE foo SET value = 2 WHERE key = 1; 53step s2_unlock: SELECT pg_advisory_unlock(0); 54pg_advisory_unlock 55------------------ 56t 57(1 row) 58 59step s1l: <... completed> 60key|value 61---+----- 62 1| 1 63(1 row) 64 65step s2c: COMMIT; 66 67starting permutation: s2b s1l s2u s2_blocker1 s2_unlock s2r 68pg_advisory_lock 69---------------- 70 71(1 row) 72 73step s2b: BEGIN; 74step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> 75step s2u: UPDATE foo SET value = 2 WHERE key = 1; 76step s2_blocker1: DELETE FROM foo; 77step s2_unlock: SELECT pg_advisory_unlock(0); 78pg_advisory_unlock 79------------------ 80t 81(1 row) 82 83step s2r: ROLLBACK; 84step s1l: <... completed> 85key|value 86---+----- 87 1| 1 88(1 row) 89 90 91starting permutation: s2b s1l s2u s2_blocker2 s2_unlock s2r 92pg_advisory_lock 93---------------- 94 95(1 row) 96 97step s2b: BEGIN; 98step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> 99step s2u: UPDATE foo SET value = 2 WHERE key = 1; 100step s2_blocker2: UPDATE foo SET key = 2 WHERE key = 1; 101step s2_unlock: SELECT pg_advisory_unlock(0); 102pg_advisory_unlock 103------------------ 104t 105(1 row) 106 107step s2r: ROLLBACK; 108step s1l: <... completed> 109key|value 110---+----- 111 1| 1 112(1 row) 113 114 115starting permutation: s2b s1l s2u s2_blocker3 s2_unlock s2r 116pg_advisory_lock 117---------------- 118 119(1 row) 120 121step s2b: BEGIN; 122step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> 123step s2u: UPDATE foo SET value = 2 WHERE key = 1; 124step s2_blocker3: UPDATE foo SET value = 2 WHERE key = 1; 125step s2_unlock: SELECT pg_advisory_unlock(0); 126pg_advisory_unlock 127------------------ 128t 129(1 row) 130 131step s1l: <... completed> 132key|value 133---+----- 134 1| 1 135(1 row) 136 137step s2r: ROLLBACK; 138 139starting permutation: s2b s1l s2u s2_blocker1 s2c s2_unlock 140pg_advisory_lock 141---------------- 142 143(1 row) 144 145step s2b: BEGIN; 146step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> 147step s2u: UPDATE foo SET value = 2 WHERE key = 1; 148step s2_blocker1: DELETE FROM foo; 149step s2c: COMMIT; 150step s2_unlock: SELECT pg_advisory_unlock(0); 151pg_advisory_unlock 152------------------ 153t 154(1 row) 155 156step s1l: <... completed> 157ERROR: could not serialize access due to concurrent update 158 159starting permutation: s2b s1l s2u s2_blocker2 s2c s2_unlock 160pg_advisory_lock 161---------------- 162 163(1 row) 164 165step s2b: BEGIN; 166step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> 167step s2u: UPDATE foo SET value = 2 WHERE key = 1; 168step s2_blocker2: UPDATE foo SET key = 2 WHERE key = 1; 169step s2c: COMMIT; 170step s2_unlock: SELECT pg_advisory_unlock(0); 171pg_advisory_unlock 172------------------ 173t 174(1 row) 175 176step s1l: <... completed> 177ERROR: could not serialize access due to concurrent update 178 179starting permutation: s2b s1l s2u s2_blocker3 s2c s2_unlock 180pg_advisory_lock 181---------------- 182 183(1 row) 184 185step s2b: BEGIN; 186step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> 187step s2u: UPDATE foo SET value = 2 WHERE key = 1; 188step s2_blocker3: UPDATE foo SET value = 2 WHERE key = 1; 189step s2c: COMMIT; 190step s2_unlock: SELECT pg_advisory_unlock(0); 191pg_advisory_unlock 192------------------ 193t 194(1 row) 195 196step s1l: <... completed> 197key|value 198---+----- 199 1| 1 200(1 row) 201 202 203starting permutation: s2b s1l s2u s2_blocker1 s2r s2_unlock 204pg_advisory_lock 205---------------- 206 207(1 row) 208 209step s2b: BEGIN; 210step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> 211step s2u: UPDATE foo SET value = 2 WHERE key = 1; 212step s2_blocker1: DELETE FROM foo; 213step s2r: ROLLBACK; 214step s2_unlock: SELECT pg_advisory_unlock(0); 215pg_advisory_unlock 216------------------ 217t 218(1 row) 219 220step s1l: <... completed> 221key|value 222---+----- 223 1| 1 224(1 row) 225 226 227starting permutation: s2b s1l s2u s2_blocker2 s2r s2_unlock 228pg_advisory_lock 229---------------- 230 231(1 row) 232 233step s2b: BEGIN; 234step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> 235step s2u: UPDATE foo SET value = 2 WHERE key = 1; 236step s2_blocker2: UPDATE foo SET key = 2 WHERE key = 1; 237step s2r: ROLLBACK; 238step s2_unlock: SELECT pg_advisory_unlock(0); 239pg_advisory_unlock 240------------------ 241t 242(1 row) 243 244step s1l: <... completed> 245key|value 246---+----- 247 1| 1 248(1 row) 249 250 251starting permutation: s2b s1l s2u s2_blocker3 s2r s2_unlock 252pg_advisory_lock 253---------------- 254 255(1 row) 256 257step s2b: BEGIN; 258step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> 259step s2u: UPDATE foo SET value = 2 WHERE key = 1; 260step s2_blocker3: UPDATE foo SET value = 2 WHERE key = 1; 261step s2r: ROLLBACK; 262step s2_unlock: SELECT pg_advisory_unlock(0); 263pg_advisory_unlock 264------------------ 265t 266(1 row) 267 268step s1l: <... completed> 269key|value 270---+----- 271 1| 1 272(1 row) 273 274