BUG #15305: PREPARE TRANSACTION andpg_create_logical_replication_slot() - Mailing list pgsql-bugs

From PG Bug reporting form
Subject BUG #15305: PREPARE TRANSACTION andpg_create_logical_replication_slot()
Date
Msg-id 153299679998.1396.1013733966088921593@wrigleys.postgresql.org
Whole thread Raw
Responses Re: BUG #15305: PREPARE TRANSACTION andpg_create_logical_replication_slot()  (Andres Freund <andres@anarazel.de>)
List pgsql-bugs
The following bug has been logged on the website:

Bug reference:      15305
Logged by:          Toshi Harada
Email address:      harada.toshi@po.ntt-tx.co.jp
PostgreSQL version: 10.4
Operating system:   CentOS Linux release 7.4.1708 (Core)
Description:

Execution of pg_create_logical_replication_slot() is blocked after execution
of PREPARE TRANSACTION.

Steps to Reproduce

1.Execute the PREPARE TRANSACTION command to put it in the state before
two-phase commit.

pgbench_db=# PREPARE TRANSACTION 'foo';
PREPARE TRANSACTION
pgbench_db=#

2. Execution of the pg_create_logical_replication_slot () function in the
state before two-phase commit is blocked.

pgbench_db=# SELECT pg_create_logical_replication_slot('my_slot',
'test_decoding');

3. When the two-phase commit state is released by executing the ROLLBACK
PREPARE command from another terminal, pg_create_logical_replication_slot ()
is executed and a logical slot is generated.

 pg_create_logical_replication_slot
------------------------------------
 (my_slot,4/60CAA460)
(1 row)


[Question]
Is it specifications that are blocked when trying to create logical slots in
the state before two-phase commit?
If that is a spec, it is better to add notes to the PostgreSQL document.


pgsql-bugs by date:

Previous
From: Peter Geoghegan
Date:
Subject: Re: Fwd: Problem with a "complex" upsert
Next
From: Andres Freund
Date:
Subject: Re: BUG #15305: PREPARE TRANSACTION andpg_create_logical_replication_slot()