Commit 2268e6af authored by Alvaro Herrera's avatar Alvaro Herrera

Fix isolation test to be less timing-dependent

I did this by adding another locking process, which makes the other two
wait.  This way the output should be stable enough.

Per buildfarm and Andres Freund
Discussion: https://postgr.es/m/20180103034445.t3utrtrnrevfsghm@alap3.anarazel.de
parent 9d4649ca
Parsed test spec with 2 sessions Parsed test spec with 3 sessions
starting permutation: s2l s1i s2i s3u
pg_advisory_lock
starting permutation: s2l s1i s2i
step s2l: SELECT pg_advisory_lock(281457); step s2l: SELECT pg_advisory_lock(281457);
pg_advisory_lock pg_advisory_lock
...@@ -11,9 +14,11 @@ step s1i: ...@@ -11,9 +14,11 @@ step s1i:
<waiting ...> <waiting ...>
step s2i: step s2i:
CREATE INDEX CONCURRENTLY mcic_two_pkey ON mcic_two (id) CREATE INDEX CONCURRENTLY mcic_two_pkey ON mcic_two (id)
WHERE unlck(); WHERE unlck() AND lck_shr(572814);
<waiting ...>
step s3u: SELECT unlck();
unlck
t
step s1i: <... completed> step s1i: <... completed>
s1 step s2i: <... completed>
...@@ -26,15 +26,19 @@ session "s1" ...@@ -26,15 +26,19 @@ session "s1"
step "s1i" { step "s1i" {
CREATE INDEX CONCURRENTLY mcic_one_pkey ON mcic_one (id) CREATE INDEX CONCURRENTLY mcic_one_pkey ON mcic_one (id)
WHERE lck_shr(281457); WHERE lck_shr(281457);
} }
teardown { SELECT pg_advisory_unlock_all() AS "s1"; } step "s1u" { SELECT unlck(); }
session "s2" session "s2"
step "s2l" { SELECT pg_advisory_lock(281457); } step "s2l" { SELECT pg_advisory_lock(281457); }
step "s2i" { step "s2i" {
CREATE INDEX CONCURRENTLY mcic_two_pkey ON mcic_two (id) CREATE INDEX CONCURRENTLY mcic_two_pkey ON mcic_two (id)
WHERE unlck(); WHERE unlck() AND lck_shr(572814);
} }
permutation "s2l" "s1i" "s2i" session "s3"
setup { SELECT pg_advisory_lock(572814); }
step "s3u" { SELECT unlck(); }
permutation "s2l" "s1i" "s2i" "s3u"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment