Parsed test spec with 2 sessions starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s1describe s1alter step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; a - 1 (1 row) step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; step s2detach: <... completed> ERROR: canceling statement due to user request step s1cancel: <... completed> pg_cancel_backend ----------------- t (1 row) step s1c: COMMIT; step s1describe: SELECT 'd3_listp' AS root, * FROM pg_partition_tree('d3_listp') UNION ALL SELECT 'd3_listp1', * FROM pg_partition_tree('d3_listp1'); root |relid |parentrelid|isleaf|level ---------+---------+-----------+------+----- d3_listp |d3_listp | |f | 0 d3_listp |d3_listp2|d3_listp |t | 1 d3_listp1|d3_listp1| |t | 0 (3 rows) step s1alter: ALTER TABLE d3_listp1 ALTER a DROP NOT NULL; ERROR: cannot alter partition "d3_listp1" with an incomplete detach starting permutation: s2snitch s1b s1s s2detach s1cancel s1insert s1c step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; a - 1 (1 row) step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; step s2detach: <... completed> ERROR: canceling statement due to user request step s1cancel: <... completed> pg_cancel_backend ----------------- t (1 row) step s1insert: INSERT INTO d3_listp VALUES (1); ERROR: no partition of relation "d3_listp" found for row step s1c: COMMIT; starting permutation: s2snitch s1brr s1s s2detach s1cancel s1insert s1c s1spart step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1brr: BEGIN ISOLATION LEVEL REPEATABLE READ; step s1s: SELECT * FROM d3_listp; a - 1 (1 row) step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; step s2detach: <... completed> ERROR: canceling statement due to user request step s1cancel: <... completed> pg_cancel_backend ----------------- t (1 row) step s1insert: INSERT INTO d3_listp VALUES (1); step s1c: COMMIT; step s1spart: SELECT * FROM d3_listp1; a - 1 1 (2 rows) starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s1insertpart step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; a - 1 (1 row) step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; step s2detach: <... completed> ERROR: canceling statement due to user request step s1cancel: <... completed> pg_cancel_backend ----------------- t (1 row) step s1c: COMMIT; step s1insertpart: INSERT INTO d3_listp1 VALUES (1); starting permutation: s2snitch s1b s1s s2detach2 s1cancel s1c s1brr s1insert s1s s1insert s1c step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; a - 1 (1 row) step s2detach2: ALTER TABLE d3_listp DETACH PARTITION d3_listp2 CONCURRENTLY; step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; step s2detach2: <... completed> ERROR: canceling statement due to user request step s1cancel: <... completed> pg_cancel_backend ----------------- t (1 row) step s1c: COMMIT; step s1brr: BEGIN ISOLATION LEVEL REPEATABLE READ; step s1insert: INSERT INTO d3_listp VALUES (1); step s1s: SELECT * FROM d3_listp; a - 1 1 (2 rows) step s1insert: INSERT INTO d3_listp VALUES (1); step s1c: COMMIT; starting permutation: s2snitch s1b s1s s2detach2 s1cancel s1c s1brr s1s s1insert s1s s1c step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; a - 1 (1 row) step s2detach2: ALTER TABLE d3_listp DETACH PARTITION d3_listp2 CONCURRENTLY; step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; step s2detach2: <... completed> ERROR: canceling statement due to user request step s1cancel: <... completed> pg_cancel_backend ----------------- t (1 row) step s1c: COMMIT; step s1brr: BEGIN ISOLATION LEVEL REPEATABLE READ; step s1s: SELECT * FROM d3_listp; a - 1 (1 row) step s1insert: INSERT INTO d3_listp VALUES (1); step s1s: SELECT * FROM d3_listp; a - 1 1 (2 rows) step s1c: COMMIT; starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s1drop s1list step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; a - 1 (1 row) step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; step s2detach: <... completed> ERROR: canceling statement due to user request step s1cancel: <... completed> pg_cancel_backend ----------------- t (1 row) step s1c: COMMIT; step s1drop: DROP TABLE d3_listp; step s1list: SELECT relname FROM pg_catalog.pg_class WHERE relname LIKE 'd3_listp%' ORDER BY 1; relname ------- (0 rows) starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s1trunc s1spart step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; a - 1 (1 row) step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; step s2detach: <... completed> ERROR: canceling statement due to user request step s1cancel: <... completed> pg_cancel_backend ----------------- t (1 row) step s1c: COMMIT; step s1trunc: TRUNCATE TABLE d3_listp; step s1spart: SELECT * FROM d3_listp1; a - 1 (1 row) starting permutation: s2snitch s1b s1s s2detach s1cancel s1noop s2detach2 s1c step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; a - 1 (1 row) step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; step s2detach: <... completed> ERROR: canceling statement due to user request step s1cancel: <... completed> pg_cancel_backend ----------------- t (1 row) step s1noop: step s2detach2: ALTER TABLE d3_listp DETACH PARTITION d3_listp2 CONCURRENTLY; ERROR: partition "d3_listp1" already pending detach in partitioned table "public.d3_listp" step s1c: COMMIT; starting permutation: s2snitch s1b s1s s2detach s1cancel s1noop s2detachfinal s1c s2detach2 step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; a - 1 (1 row) step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; step s2detach: <... completed> ERROR: canceling statement due to user request step s1cancel: <... completed> pg_cancel_backend ----------------- t (1 row) step s1noop: step s2detachfinal: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 FINALIZE; step s1c: COMMIT; step s2detachfinal: <... completed> step s2detach2: ALTER TABLE d3_listp DETACH PARTITION d3_listp2 CONCURRENTLY; starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s1droppart s2detach2 step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; a - 1 (1 row) step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; step s2detach: <... completed> ERROR: canceling statement due to user request step s1cancel: <... completed> pg_cancel_backend ----------------- t (1 row) step s1c: COMMIT; step s1droppart: DROP TABLE d3_listp1; step s2detach2: ALTER TABLE d3_listp DETACH PARTITION d3_listp2 CONCURRENTLY; starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s2begin s2drop s1s s2commit step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; a - 1 (1 row) step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; step s2detach: <... completed> ERROR: canceling statement due to user request step s1cancel: <... completed> pg_cancel_backend ----------------- t (1 row) step s1c: COMMIT; step s2begin: BEGIN; step s2drop: DROP TABLE d3_listp1; step s1s: SELECT * FROM d3_listp; step s2commit: COMMIT; step s1s: <... completed> a - (0 rows) starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s1b s1spart s2detachfinal s1c step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; a - 1 (1 row) step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; step s2detach: <... completed> ERROR: canceling statement due to user request step s1cancel: <... completed> pg_cancel_backend ----------------- t (1 row) step s1c: COMMIT; step s1b: BEGIN; step s1spart: SELECT * FROM d3_listp1; a - 1 (1 row) step s2detachfinal: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 FINALIZE; step s1c: COMMIT; step s2detachfinal: <... completed> starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s1b s1s s2detachfinal s1c step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; a - 1 (1 row) step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; step s2detach: <... completed> ERROR: canceling statement due to user request step s1cancel: <... completed> pg_cancel_backend ----------------- t (1 row) step s1c: COMMIT; step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; a - (0 rows) step s2detachfinal: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 FINALIZE; step s1c: COMMIT; starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s1b s1spart s2detachfinal s1c step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; a - 1 (1 row) step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; step s2detach: <... completed> ERROR: canceling statement due to user request step s1cancel: <... completed> pg_cancel_backend ----------------- t (1 row) step s1c: COMMIT; step s1b: BEGIN; step s1spart: SELECT * FROM d3_listp1; a - 1 (1 row) step s2detachfinal: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 FINALIZE; step s1c: COMMIT; step s2detachfinal: <... completed> starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s2begin s2detachfinal s2commit step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; a - 1 (1 row) step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; step s2detach: <... completed> ERROR: canceling statement due to user request step s1cancel: <... completed> pg_cancel_backend ----------------- t (1 row) step s1c: COMMIT; step s2begin: BEGIN; step s2detachfinal: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 FINALIZE; step s2commit: COMMIT; starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s2begin s2detachfinal s1spart s2commit step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; a - 1 (1 row) step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; step s2detach: <... completed> ERROR: canceling statement due to user request step s1cancel: <... completed> pg_cancel_backend ----------------- t (1 row) step s1c: COMMIT; step s2begin: BEGIN; step s2detachfinal: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 FINALIZE; step s1spart: SELECT * FROM d3_listp1; step s2commit: COMMIT; step s1spart: <... completed> a - 1 (1 row) starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s2begin s2detachfinal s1insertpart s2commit step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; a - 1 (1 row) step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; step s2detach: <... completed> ERROR: canceling statement due to user request step s1cancel: <... completed> pg_cancel_backend ----------------- t (1 row) step s1c: COMMIT; step s2begin: BEGIN; step s2detachfinal: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 FINALIZE; step s1insertpart: INSERT INTO d3_listp1 VALUES (1); step s2commit: COMMIT; step s1insertpart: <... completed>