Parsed test spec with 5 sessions starting permutation: s1_attach_invalidate_catalog_snapshot s4_wakeup_s1_setup s3_start_create_index s1_start_upsert s4_wakeup_define_index_before_set_valid s2_start_upsert s5_wakeup_s1_from_invalidate_catalog_snapshot s4_wakeup_s2 s4_wakeup_s1 injection_points_attach ----------------------- (1 row) injection_points_attach ----------------------- (1 row) injection_points_attach ----------------------- (1 row) step s1_attach_invalidate_catalog_snapshot: SELECT injection_points_attach('invalidate-catalog-snapshot-end', 'wait'); step s4_wakeup_s1_setup: SELECT CASE WHEN (SELECT pid FROM pg_stat_activity WHERE wait_event_type = 'InjectionPoint' AND wait_event = 'invalidate-catalog-snapshot-end') IS NOT NULL THEN injection_points_wakeup('invalidate-catalog-snapshot-end') END; case ---- (1 row) step s1_attach_invalidate_catalog_snapshot: <... completed> injection_points_attach ----------------------- (1 row) step s3_start_create_index: CREATE UNIQUE INDEX CONCURRENTLY tbl_pkey_duplicate ON test.tbl(i); step s1_start_upsert: INSERT INTO test.tbl VALUES (13,now()) ON CONFLICT (i) DO UPDATE SET updated_at = now(); step s4_wakeup_define_index_before_set_valid: SELECT injection_points_detach('define-index-before-set-valid'); SELECT injection_points_wakeup('define-index-before-set-valid'); injection_points_detach ----------------------- (1 row) injection_points_wakeup ----------------------- (1 row) step s2_start_upsert: INSERT INTO test.tbl VALUES (13,now()) ON CONFLICT (i) DO UPDATE SET updated_at = now(); step s5_wakeup_s1_from_invalidate_catalog_snapshot: DO $$ DECLARE v_waiting_pid INTEGER; BEGIN LOOP SELECT pid INTO v_waiting_pid FROM pg_stat_activity WHERE wait_event_type = 'InjectionPoint' AND wait_event = 'invalidate-catalog-snapshot-end' LIMIT 1; EXIT WHEN v_waiting_pid IS NOT NULL; PERFORM pg_sleep(100); END LOOP; END $$; SELECT injection_points_detach('invalidate-catalog-snapshot-end'); SELECT injection_points_wakeup('invalidate-catalog-snapshot-end'); injection_points_detach ----------------------- (1 row) injection_points_wakeup ----------------------- (1 row) step s4_wakeup_s2: SELECT injection_points_detach('exec-insert-before-insert-speculative'); SELECT injection_points_wakeup('exec-insert-before-insert-speculative'); injection_points_detach ----------------------- (1 row) injection_points_wakeup ----------------------- (1 row) step s4_wakeup_s1: SELECT injection_points_detach('check-exclusion-or-unique-constraint-no-conflict'); SELECT injection_points_wakeup('check-exclusion-or-unique-constraint-no-conflict'); injection_points_detach ----------------------- (1 row) injection_points_wakeup ----------------------- (1 row) step s1_start_upsert: <... completed> step s2_start_upsert: <... completed> step s3_start_create_index: <... completed>