Parsed test spec with 4 sessions
-starting permutation: s1_advlock s2_update s3_update s4_update s1_chain s1_begin s1_grablock s1_advunlock s1_commit
-step s1_advlock: SELECT pg_advisory_lock(142857);
-pg_advisory_lock
+starting permutation: s1_advlock s2_update s3_update s4_update s1_chain s1_begin s1_grablock s1_advunlock1 s1_advunlock2 s1_advunlock3 s1_commit
+step s1_advlock:
+ SELECT pg_advisory_lock(142857),
+ pg_advisory_lock(285714),
+ pg_advisory_lock(571428);
-
+pg_advisory_lockpg_advisory_lockpg_advisory_lock
+
+
step s2_update: UPDATE pktab SET data = DEFAULT WHERE pg_advisory_lock_shared(142857) IS NOT NULL; <waiting ...>
-step s3_update: UPDATE pktab SET data = DEFAULT WHERE pg_advisory_lock_shared(142857) IS NOT NULL; <waiting ...>
-step s4_update: UPDATE pktab SET data = DEFAULT WHERE pg_advisory_lock_shared(142857) IS NOT NULL; <waiting ...>
+step s3_update: UPDATE pktab SET data = DEFAULT WHERE pg_advisory_lock_shared(285714) IS NOT NULL; <waiting ...>
+step s4_update: UPDATE pktab SET data = DEFAULT WHERE pg_advisory_lock_shared(571428) IS NOT NULL; <waiting ...>
step s1_chain: UPDATE pktab SET data = DEFAULT;
step s1_begin: BEGIN;
step s1_grablock: SELECT * FROM pktab FOR KEY SHARE;
id data
1 2
-step s1_advunlock: SELECT pg_advisory_unlock(142857);
+step s1_advunlock1: SELECT pg_advisory_unlock(142857);
pg_advisory_unlock
t
step s2_update: <... completed>
+step s1_advunlock2: SELECT pg_sleep(5), pg_advisory_unlock(285714);
+pg_sleep pg_advisory_unlock
+
+ t
step s3_update: <... completed>
+step s1_advunlock3: SELECT pg_sleep(5), pg_advisory_unlock(571428);
+pg_sleep pg_advisory_unlock
+
+ t
step s4_update: <... completed>
step s1_commit: COMMIT;
}
session "s1"
-step "s1_advlock" { SELECT pg_advisory_lock(142857); }
+step "s1_advlock" {
+ SELECT pg_advisory_lock(142857),
+ pg_advisory_lock(285714),
+ pg_advisory_lock(571428);
+ }
step "s1_chain" { UPDATE pktab SET data = DEFAULT; }
step "s1_begin" { BEGIN; }
step "s1_grablock" { SELECT * FROM pktab FOR KEY SHARE; }
-step "s1_advunlock" { SELECT pg_advisory_unlock(142857); }
+step "s1_advunlock1" { SELECT pg_advisory_unlock(142857); }
+step "s1_advunlock2" { SELECT pg_sleep(5), pg_advisory_unlock(285714); }
+step "s1_advunlock3" { SELECT pg_sleep(5), pg_advisory_unlock(571428); }
step "s1_commit" { COMMIT; }
session "s2"
step "s2_update" { UPDATE pktab SET data = DEFAULT WHERE pg_advisory_lock_shared(142857) IS NOT NULL; }
session "s3"
-step "s3_update" { UPDATE pktab SET data = DEFAULT WHERE pg_advisory_lock_shared(142857) IS NOT NULL; }
+step "s3_update" { UPDATE pktab SET data = DEFAULT WHERE pg_advisory_lock_shared(285714) IS NOT NULL; }
session "s4"
-step "s4_update" { UPDATE pktab SET data = DEFAULT WHERE pg_advisory_lock_shared(142857) IS NOT NULL; }
+step "s4_update" { UPDATE pktab SET data = DEFAULT WHERE pg_advisory_lock_shared(571428) IS NOT NULL; }
-permutation "s1_advlock" "s2_update" "s3_update" "s4_update" "s1_chain" "s1_begin" "s1_grablock" "s1_advunlock" "s1_commit"
+permutation "s1_advlock" "s2_update" "s3_update" "s4_update" "s1_chain" "s1_begin" "s1_grablock" "s1_advunlock1" "s1_advunlock2" "s1_advunlock3" "s1_commit"