mirror of
https://github.com/postgres/postgres.git
synced 2025-06-16 06:01:02 +03:00
Close race condition in slot_creation_error.spec.
Use the pattern from detach-partition-concurrently-3.spec. Per buildfarm member wrasse. Reviewed by Kyotaro Horiguchi and Andres Freund. Discussion: https://postgr.es/m/20220318072837.GC2739027@rfd.leadboat.com
This commit is contained in:
@ -23,14 +23,15 @@ step s1_cancel_s2:
|
|||||||
SELECT pg_cancel_backend(pid)
|
SELECT pg_cancel_backend(pid)
|
||||||
FROM pg_stat_activity
|
FROM pg_stat_activity
|
||||||
WHERE application_name = 'isolation/slot_creation_error/s2';
|
WHERE application_name = 'isolation/slot_creation_error/s2';
|
||||||
|
<waiting ...>
|
||||||
|
step s2_init: <... completed>
|
||||||
|
ERROR: canceling statement due to user request
|
||||||
|
step s1_cancel_s2: <... completed>
|
||||||
pg_cancel_backend
|
pg_cancel_backend
|
||||||
-----------------
|
-----------------
|
||||||
t
|
t
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
step s2_init: <... completed>
|
|
||||||
ERROR: canceling statement due to user request
|
|
||||||
step s1_view_slot:
|
step s1_view_slot:
|
||||||
SELECT slot_name, slot_type, active FROM pg_replication_slots WHERE slot_name = 'slot_creation_error'
|
SELECT slot_name, slot_type, active FROM pg_replication_slots WHERE slot_name = 'slot_creation_error'
|
||||||
|
|
||||||
@ -90,18 +91,19 @@ step s1_terminate_s2:
|
|||||||
SELECT pg_terminate_backend(pid)
|
SELECT pg_terminate_backend(pid)
|
||||||
FROM pg_stat_activity
|
FROM pg_stat_activity
|
||||||
WHERE application_name = 'isolation/slot_creation_error/s2';
|
WHERE application_name = 'isolation/slot_creation_error/s2';
|
||||||
|
<waiting ...>
|
||||||
pg_terminate_backend
|
|
||||||
--------------------
|
|
||||||
t
|
|
||||||
(1 row)
|
|
||||||
|
|
||||||
step s2_init: <... completed>
|
step s2_init: <... completed>
|
||||||
FATAL: terminating connection due to administrator command
|
FATAL: terminating connection due to administrator command
|
||||||
server closed the connection unexpectedly
|
server closed the connection unexpectedly
|
||||||
This probably means the server terminated abnormally
|
This probably means the server terminated abnormally
|
||||||
before or while processing the request.
|
before or while processing the request.
|
||||||
|
|
||||||
|
step s1_terminate_s2: <... completed>
|
||||||
|
pg_terminate_backend
|
||||||
|
--------------------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
step s1_c: COMMIT;
|
step s1_c: COMMIT;
|
||||||
step s1_view_slot:
|
step s1_view_slot:
|
||||||
SELECT slot_name, slot_type, active FROM pg_replication_slots WHERE slot_name = 'slot_creation_error'
|
SELECT slot_name, slot_type, active FROM pg_replication_slots WHERE slot_name = 'slot_creation_error'
|
||||||
|
@ -35,7 +35,7 @@ step s2_init {
|
|||||||
# The tests first start a transaction with an xid assigned in s1, then create
|
# The tests first start a transaction with an xid assigned in s1, then create
|
||||||
# a slot in s2. The slot creation waits for s1's transaction to end. Instead
|
# a slot in s2. The slot creation waits for s1's transaction to end. Instead
|
||||||
# we cancel / terminate s2.
|
# we cancel / terminate s2.
|
||||||
permutation s1_b s1_xid s2_init s1_view_slot s1_cancel_s2 s1_view_slot s1_c
|
permutation s1_b s1_xid s2_init s1_view_slot s1_cancel_s2(s2_init) s1_view_slot s1_c
|
||||||
permutation s1_b s1_xid s2_init s1_c s1_view_slot s1_drop_slot # check slot creation still works
|
permutation s1_b s1_xid s2_init s1_c s1_view_slot s1_drop_slot # check slot creation still works
|
||||||
permutation s1_b s1_xid s2_init s1_terminate_s2 s1_c s1_view_slot
|
permutation s1_b s1_xid s2_init s1_terminate_s2(s2_init) s1_c s1_view_slot
|
||||||
# can't run tests after this, due to s2's connection failure
|
# can't run tests after this, due to s2's connection failure
|
||||||
|
Reference in New Issue
Block a user