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
This commit is contained in:
Alvaro Herrera 2018-01-03 11:16:42 -03:00
parent 9d4649ca49
commit 2268e6afd5
2 changed files with 19 additions and 10 deletions

View File

@ -1,6 +1,9 @@
Parsed test spec with 2 sessions
Parsed test spec with 3 sessions
starting permutation: s2l s1i s2i
starting permutation: s2l s1i s2i s3u
pg_advisory_lock
step s2l: SELECT pg_advisory_lock(281457);
pg_advisory_lock
@ -11,9 +14,11 @@ step s1i:
<waiting ...>
step s2i:
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>
s1
step s2i: <... completed>

View File

@ -26,15 +26,19 @@ session "s1"
step "s1i" {
CREATE INDEX CONCURRENTLY mcic_one_pkey ON mcic_one (id)
WHERE lck_shr(281457);
}
teardown { SELECT pg_advisory_unlock_all() AS "s1"; }
}
step "s1u" { SELECT unlck(); }
session "s2"
step "s2l" { SELECT pg_advisory_lock(281457); }
step "s2i" {
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"