1
0
mirror of https://github.com/postgres/postgres.git synced 2025-04-18 13:44:19 +03:00

injection_points: Re-enable permutation in isolation test "basic"

This test has been disabled in 9f00edc22888 due to an instable expected
output, where it would be possible for the wait step to report its
result after the detach step is done.  The expected output was ordered
so as the detach would always report last.

Isolation test permutations have the option to use markers to control
the ordering for cases like this one, as documented in
src/test/isolation/README.  The permutation is enabled once again, this
time with a marker added so as the detach step reports only once the
wait step has finished, ensuring a correct output ordering.

Reviewed-by: Bertrand Drouvot
Discussion: https://postgr.es/m/Z6MBZTX5EqQ6A8Zc@paquier.xyz
This commit is contained in:
Michael Paquier 2025-02-06 10:39:41 +09:00
parent 306dc520b9
commit 9e020050b8
2 changed files with 31 additions and 6 deletions

View File

@ -1,5 +1,31 @@
Parsed test spec with 2 sessions
starting permutation: wait1 wakeup2 detach2
injection_points_attach
-----------------------
(1 row)
step wait1: SELECT injection_points_run('injection-points-wait'); <waiting ...>
step wakeup2: SELECT injection_points_wakeup('injection-points-wait');
injection_points_wakeup
-----------------------
(1 row)
step wait1: <... completed>
injection_points_run
--------------------
(1 row)
step detach2: SELECT injection_points_detach('injection-points-wait');
injection_points_detach
-----------------------
(1 row)
starting permutation: wait1 detach2 wakeup2
injection_points_attach
-----------------------

View File

@ -25,12 +25,11 @@ session s2
step wakeup2 { SELECT injection_points_wakeup('injection-points-wait'); }
step detach2 { SELECT injection_points_detach('injection-points-wait'); }
# Detach after wait and wakeup.
# Permutations like the following one commented out should be avoided, as
# the detach may finish before the SQL function doing the wait returns
# its result. It is recommended to use wakeups as the last permutation
# should a wait be done within an SQL function.
#permutation wait1 wakeup2 detach2
# 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)
# Detach before wakeup. s1 waits until wakeup, ignores the detach.
permutation wait1 detach2 wakeup2