BUG #15305: PREPARE TRANSACTION and pg_create_logical_replication_slot()

From: PG Bug reporting form <noreply(at)postgresql(dot)org>
To: pgsql-bugs(at)lists(dot)postgresql(dot)org
Cc: harada(dot)toshi(at)po(dot)ntt-tx(dot)co(dot)jp
Subject: BUG #15305: PREPARE TRANSACTION and pg_create_logical_replication_slot()
Date: 2018-07-31 00:26:39
Message-ID: 153299679998.1396.1013733966088921593@wrigleys.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 15305
Logged by: Toshi Harada
Email address: harada(dot)toshi(at)po(dot)ntt-tx(dot)co(dot)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.

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Andres Freund 2018-07-31 00:37:22 Re: BUG #15305: PREPARE TRANSACTION and pg_create_logical_replication_slot()
Previous Message Peter Geoghegan 2018-07-30 22:53:00 Re: Fwd: Problem with a "complex" upsert