Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit54638f5

Browse files
committed
Make new isolationtester test more stable
The original coding of the test was relying too much on the ordering inwhich backends are awakened once an advisory lock which they wait for isreleased. Change the code so that each backend uses its own advisorylock instead, so that the output becomes stable. Also add a few secondsof sleep between lock releases, so that the test isn't broken inoverloaded buildfarm animals, as suggested by Tom Lane.Per buildfarm members spoonbill and guaibasaurus.Discussion:https://www.postgresql.org/message-id/19294.1456551587%40sss.pgh.pa.us
1 parentc110678 commit54638f5

File tree

2 files changed

+30
-12
lines changed

2 files changed

+30
-12
lines changed
Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,36 @@
11
Parsed test spec with 4 sessions
22

3-
starting permutation: s1_advlock s2_update s3_update s4_update s1_chain s1_begin s1_grablock s1_advunlock s1_commit
4-
step s1_advlock: SELECT pg_advisory_lock(142857);
5-
pg_advisory_lock
3+
starting permutation: s1_advlock s2_update s3_update s4_update s1_chain s1_begin s1_grablock s1_advunlock1 s1_advunlock2 s1_advunlock3 s1_commit
4+
step s1_advlock:
5+
SELECT pg_advisory_lock(142857),
6+
pg_advisory_lock(285714),
7+
pg_advisory_lock(571428);
68

7-
9+
pg_advisory_lockpg_advisory_lockpg_advisory_lock
10+
11+
812
step s2_update: UPDATE pktab SET data = DEFAULT WHERE pg_advisory_lock_shared(142857) IS NOT NULL; <waiting ...>
9-
step s3_update: UPDATE pktab SET data = DEFAULT WHERE pg_advisory_lock_shared(142857) IS NOT NULL; <waiting ...>
10-
step s4_update: UPDATE pktab SET data = DEFAULT WHERE pg_advisory_lock_shared(142857) IS NOT NULL; <waiting ...>
13+
step s3_update: UPDATE pktab SET data = DEFAULT WHERE pg_advisory_lock_shared(285714) IS NOT NULL; <waiting ...>
14+
step s4_update: UPDATE pktab SET data = DEFAULT WHERE pg_advisory_lock_shared(571428) IS NOT NULL; <waiting ...>
1115
step s1_chain: UPDATE pktab SET data = DEFAULT;
1216
step s1_begin: BEGIN;
1317
step s1_grablock: SELECT * FROM pktab FOR KEY SHARE;
1418
id data
1519

1620
1 2
17-
steps1_advunlock: SELECT pg_advisory_unlock(142857);
21+
steps1_advunlock1: SELECT pg_advisory_unlock(142857);
1822
pg_advisory_unlock
1923

2024
t
2125
step s2_update: <... completed>
26+
step s1_advunlock2: SELECT pg_sleep(5), pg_advisory_unlock(285714);
27+
pg_sleep pg_advisory_unlock
28+
29+
t
2230
step s3_update: <... completed>
31+
step s1_advunlock3: SELECT pg_sleep(5), pg_advisory_unlock(571428);
32+
pg_sleep pg_advisory_unlock
33+
34+
t
2335
step s4_update: <... completed>
2436
step s1_commit: COMMIT;

‎src/test/isolation/specs/tuplelock-update.spec

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,26 @@ teardown {
99
}
1010

1111
session"s1"
12-
step"s1_advlock" {SELECTpg_advisory_lock(142857); }
12+
step"s1_advlock" {
13+
SELECTpg_advisory_lock(142857),
14+
pg_advisory_lock(285714),
15+
pg_advisory_lock(571428);
16+
}
1317
step"s1_chain" {UPDATEpktabSETdata=DEFAULT; }
1418
step"s1_begin" {BEGIN; }
1519
step"s1_grablock" {SELECT*FROMpktabFORKEYSHARE; }
16-
step"s1_advunlock" {SELECTpg_advisory_unlock(142857); }
20+
step"s1_advunlock1" {SELECTpg_advisory_unlock(142857); }
21+
step"s1_advunlock2" {SELECTpg_sleep(5),pg_advisory_unlock(285714); }
22+
step"s1_advunlock3" {SELECTpg_sleep(5),pg_advisory_unlock(571428); }
1723
step"s1_commit" {COMMIT; }
1824

1925
session"s2"
2026
step"s2_update" {UPDATEpktabSETdata=DEFAULTWHEREpg_advisory_lock_shared(142857)ISNOTNULL; }
2127

2228
session"s3"
23-
step"s3_update" {UPDATEpktabSETdata=DEFAULTWHEREpg_advisory_lock_shared(142857)ISNOTNULL; }
29+
step"s3_update" {UPDATEpktabSETdata=DEFAULTWHEREpg_advisory_lock_shared(285714)ISNOTNULL; }
2430

2531
session"s4"
26-
step"s4_update" {UPDATEpktabSETdata=DEFAULTWHEREpg_advisory_lock_shared(142857)ISNOTNULL; }
32+
step"s4_update" {UPDATEpktabSETdata=DEFAULTWHEREpg_advisory_lock_shared(571428)ISNOTNULL; }
2733

28-
permutation"s1_advlock""s2_update""s3_update""s4_update""s1_chain""s1_begin""s1_grablock""s1_advunlock""s1_commit"
34+
permutation"s1_advlock""s2_update""s3_update""s4_update""s1_chain""s1_begin""s1_grablock""s1_advunlock1""s1_advunlock2""s1_advunlock3""s1_commit"

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp