| Parsed test spec with 2 sessions |
| |
| starting permutation: s2b s1l s2u s2_blocker1 s2_unlock s2c |
| pg_advisory_lock |
| ---------------- |
| |
| (1 row) |
| |
| step s2b: BEGIN; |
| step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> |
| step s2u: UPDATE foo SET value = 2 WHERE key = 1; |
| step s2_blocker1: DELETE FROM foo; |
| step s2_unlock: SELECT pg_advisory_unlock(0); |
| pg_advisory_unlock |
| ------------------ |
| t |
| (1 row) |
| |
| step s2c: COMMIT; |
| step s1l: <... completed> |
| ERROR: could not serialize access due to concurrent update |
| |
| starting permutation: s2b s1l s2u s2_blocker2 s2_unlock s2c |
| pg_advisory_lock |
| ---------------- |
| |
| (1 row) |
| |
| step s2b: BEGIN; |
| step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> |
| step s2u: UPDATE foo SET value = 2 WHERE key = 1; |
| step s2_blocker2: UPDATE foo SET key = 2 WHERE key = 1; |
| step s2_unlock: SELECT pg_advisory_unlock(0); |
| pg_advisory_unlock |
| ------------------ |
| t |
| (1 row) |
| |
| step s2c: COMMIT; |
| step s1l: <... completed> |
| ERROR: could not serialize access due to concurrent update |
| |
| starting permutation: s2b s1l s2u s2_blocker3 s2_unlock s2c |
| pg_advisory_lock |
| ---------------- |
| |
| (1 row) |
| |
| step s2b: BEGIN; |
| step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> |
| step s2u: UPDATE foo SET value = 2 WHERE key = 1; |
| step s2_blocker3: UPDATE foo SET value = 2 WHERE key = 1; |
| step s2_unlock: SELECT pg_advisory_unlock(0); |
| pg_advisory_unlock |
| ------------------ |
| t |
| (1 row) |
| |
| step s1l: <... completed> |
| key|value |
| ---+----- |
| 1| 1 |
| (1 row) |
| |
| step s2c: COMMIT; |
| |
| starting permutation: s2b s1l s2u s2_blocker1 s2_unlock s2r |
| pg_advisory_lock |
| ---------------- |
| |
| (1 row) |
| |
| step s2b: BEGIN; |
| step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> |
| step s2u: UPDATE foo SET value = 2 WHERE key = 1; |
| step s2_blocker1: DELETE FROM foo; |
| step s2_unlock: SELECT pg_advisory_unlock(0); |
| pg_advisory_unlock |
| ------------------ |
| t |
| (1 row) |
| |
| step s2r: ROLLBACK; |
| step s1l: <... completed> |
| key|value |
| ---+----- |
| 1| 1 |
| (1 row) |
| |
| |
| starting permutation: s2b s1l s2u s2_blocker2 s2_unlock s2r |
| pg_advisory_lock |
| ---------------- |
| |
| (1 row) |
| |
| step s2b: BEGIN; |
| step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> |
| step s2u: UPDATE foo SET value = 2 WHERE key = 1; |
| step s2_blocker2: UPDATE foo SET key = 2 WHERE key = 1; |
| step s2_unlock: SELECT pg_advisory_unlock(0); |
| pg_advisory_unlock |
| ------------------ |
| t |
| (1 row) |
| |
| step s2r: ROLLBACK; |
| step s1l: <... completed> |
| key|value |
| ---+----- |
| 1| 1 |
| (1 row) |
| |
| |
| starting permutation: s2b s1l s2u s2_blocker3 s2_unlock s2r |
| pg_advisory_lock |
| ---------------- |
| |
| (1 row) |
| |
| step s2b: BEGIN; |
| step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> |
| step s2u: UPDATE foo SET value = 2 WHERE key = 1; |
| step s2_blocker3: UPDATE foo SET value = 2 WHERE key = 1; |
| step s2_unlock: SELECT pg_advisory_unlock(0); |
| pg_advisory_unlock |
| ------------------ |
| t |
| (1 row) |
| |
| step s1l: <... completed> |
| key|value |
| ---+----- |
| 1| 1 |
| (1 row) |
| |
| step s2r: ROLLBACK; |
| |
| starting permutation: s2b s1l s2u s2_blocker1 s2c s2_unlock |
| pg_advisory_lock |
| ---------------- |
| |
| (1 row) |
| |
| step s2b: BEGIN; |
| step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> |
| step s2u: UPDATE foo SET value = 2 WHERE key = 1; |
| step s2_blocker1: DELETE FROM foo; |
| step s2c: COMMIT; |
| step s2_unlock: SELECT pg_advisory_unlock(0); |
| pg_advisory_unlock |
| ------------------ |
| t |
| (1 row) |
| |
| step s1l: <... completed> |
| ERROR: could not serialize access due to concurrent update |
| |
| starting permutation: s2b s1l s2u s2_blocker2 s2c s2_unlock |
| pg_advisory_lock |
| ---------------- |
| |
| (1 row) |
| |
| step s2b: BEGIN; |
| step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> |
| step s2u: UPDATE foo SET value = 2 WHERE key = 1; |
| step s2_blocker2: UPDATE foo SET key = 2 WHERE key = 1; |
| step s2c: COMMIT; |
| step s2_unlock: SELECT pg_advisory_unlock(0); |
| pg_advisory_unlock |
| ------------------ |
| t |
| (1 row) |
| |
| step s1l: <... completed> |
| ERROR: could not serialize access due to concurrent update |
| |
| starting permutation: s2b s1l s2u s2_blocker3 s2c s2_unlock |
| pg_advisory_lock |
| ---------------- |
| |
| (1 row) |
| |
| step s2b: BEGIN; |
| step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> |
| step s2u: UPDATE foo SET value = 2 WHERE key = 1; |
| step s2_blocker3: UPDATE foo SET value = 2 WHERE key = 1; |
| step s2c: COMMIT; |
| step s2_unlock: SELECT pg_advisory_unlock(0); |
| pg_advisory_unlock |
| ------------------ |
| t |
| (1 row) |
| |
| step s1l: <... completed> |
| key|value |
| ---+----- |
| 1| 1 |
| (1 row) |
| |
| |
| starting permutation: s2b s1l s2u s2_blocker1 s2r s2_unlock |
| pg_advisory_lock |
| ---------------- |
| |
| (1 row) |
| |
| step s2b: BEGIN; |
| step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> |
| step s2u: UPDATE foo SET value = 2 WHERE key = 1; |
| step s2_blocker1: DELETE FROM foo; |
| step s2r: ROLLBACK; |
| step s2_unlock: SELECT pg_advisory_unlock(0); |
| pg_advisory_unlock |
| ------------------ |
| t |
| (1 row) |
| |
| step s1l: <... completed> |
| key|value |
| ---+----- |
| 1| 1 |
| (1 row) |
| |
| |
| starting permutation: s2b s1l s2u s2_blocker2 s2r s2_unlock |
| pg_advisory_lock |
| ---------------- |
| |
| (1 row) |
| |
| step s2b: BEGIN; |
| step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> |
| step s2u: UPDATE foo SET value = 2 WHERE key = 1; |
| step s2_blocker2: UPDATE foo SET key = 2 WHERE key = 1; |
| step s2r: ROLLBACK; |
| step s2_unlock: SELECT pg_advisory_unlock(0); |
| pg_advisory_unlock |
| ------------------ |
| t |
| (1 row) |
| |
| step s1l: <... completed> |
| key|value |
| ---+----- |
| 1| 1 |
| (1 row) |
| |
| |
| starting permutation: s2b s1l s2u s2_blocker3 s2r s2_unlock |
| pg_advisory_lock |
| ---------------- |
| |
| (1 row) |
| |
| step s2b: BEGIN; |
| step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> |
| step s2u: UPDATE foo SET value = 2 WHERE key = 1; |
| step s2_blocker3: UPDATE foo SET value = 2 WHERE key = 1; |
| step s2r: ROLLBACK; |
| step s2_unlock: SELECT pg_advisory_unlock(0); |
| pg_advisory_unlock |
| ------------------ |
| t |
| (1 row) |
| |
| step s1l: <... completed> |
| key|value |
| ---+----- |
| 1| 1 |
| (1 row) |
| |