mirror of
https://github.com/postgres/postgres.git
synced 2025-05-28 05:21:27 +03:00
injection_points: Tweak more permutation in isolation test "basic"
The CI has reported that using a marker to force the output of the detach step to happen after the wait step was not enough, as isolationtester has managed to report the detach step as waiting before the wait step finishes in some runs. src/test/isolation/README tells that there is a more drastic method to enforce the ordering of the output: an empty step positioned just after the wait step can force the wait step to complete before the detach step begins. This method has been able to pass 10 runs in the CI here, while HEAD seems to fail 15~20% of the time in the CF bot. Discussion: https://postgr.es/m/Z6WO8FbqK_FHmrzC@paquier.xyz
This commit is contained in:
parent
428fadb7e9
commit
926c7fce03
@ -1,6 +1,6 @@
|
||||
Parsed test spec with 2 sessions
|
||||
|
||||
starting permutation: wait1 wakeup2 detach2
|
||||
starting permutation: wait1 wakeup2 noop1 detach2
|
||||
injection_points_attach
|
||||
-----------------------
|
||||
|
||||
@ -19,6 +19,7 @@ injection_points_run
|
||||
|
||||
(1 row)
|
||||
|
||||
step noop1:
|
||||
step detach2: SELECT injection_points_detach('injection-points-wait');
|
||||
injection_points_detach
|
||||
-----------------------
|
||||
|
@ -20,6 +20,7 @@ setup {
|
||||
SELECT injection_points_attach('injection-points-wait', 'wait');
|
||||
}
|
||||
step wait1 { SELECT injection_points_run('injection-points-wait'); }
|
||||
step noop1 { }
|
||||
|
||||
session s2
|
||||
step wakeup2 { SELECT injection_points_wakeup('injection-points-wait'); }
|
||||
@ -27,9 +28,9 @@ step detach2 { SELECT injection_points_detach('injection-points-wait'); }
|
||||
|
||||
# Detach after wait and wakeup. Note that the detach may finish before
|
||||
# the SQL function doing the wait returns its result. In order to avoid
|
||||
# any ordering issues, the detach step reports its result only once the
|
||||
# wait has completed. This is enforced with a parenthesized marker.
|
||||
permutation wait1 wakeup2 detach2(wait1)
|
||||
# any ordering issues, a no-op step is added after the wait, so as the
|
||||
# detach is not launched until the wait has completed.
|
||||
permutation wait1 wakeup2 noop1 detach2
|
||||
|
||||
# Detach before wakeup. s1 waits until wakeup, ignores the detach.
|
||||
permutation wait1 detach2 wakeup2
|
||||
|
Loading…
x
Reference in New Issue
Block a user