postgres.git / summary / log / commit / refs
commit 2268e6afd59649d6bf6d114a19e9c492d59b43fc
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Date: Wed Jan 03 14:16:42 2018 +0000
First released in: master (reverted before release), REL9_6_STABLE (reverted before release), REL_10_STABLE (reverted before release)
Reverted by: b64d6c934152 (in 9.6.7), a6565da8b9ef (in 10.2), 6c8be5962aea (in 11.0)
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
src/test/isolation/expected/multiple-cic.out | 17 +++++++++++------
src/test/isolation/specs/multiple-cic.spec | 12 ++++++++----
2 files changed, 19 insertions(+), 10 deletions(-)
diff --git a/src/test/isolation/expected/multiple-cic.out b/src/test/isolation/expected/multiple-cic.out
index cc579403925..0b470e7d1de 100644
--- a/src/test/isolation/expected/multiple-cic.out
+++ b/src/test/isolation/expected/multiple-cic.out
@@ -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>
diff --git a/src/test/isolation/specs/multiple-cic.spec b/src/test/isolation/specs/multiple-cic.spec
index a7ba4eb4fd1..fbec67ee252 100644
--- a/src/test/isolation/specs/multiple-cic.spec
+++ b/src/test/isolation/specs/multiple-cic.spec
@@ -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"
[parent: 9d4649ca4941]