Re: BUG #15305: PREPARE TRANSACTION andpg_create_logical_replication_slot()

Поиск
Список
Период
Сортировка
От Toshi Harada
Тема Re: BUG #15305: PREPARE TRANSACTION andpg_create_logical_replication_slot()
Дата
Msg-id 201807310113.w6V1Cx3v001225@ccmail04.silk.ntt-tx.co.jp
обсуждение исходный текст
Ответ на Re: BUG #15305: PREPARE TRANSACTION andpg_create_logical_replication_slot()  (Andres Freund <andres@anarazel.de>)
Список pgsql-bugs
Hi.

Thanks for your answer.

I understood.
Not limited to 2PC, it is blocked even when long transaction remains.
We close this bug report.

Andres Freund <andres@anarazel.de> wrote:
> Hi,
> 
> On 2018-07-31 00:26:39 +0000, PG Bug reporting form wrote:
> > 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?
> 
> Yes, that's expected. It has to wait for old transactions to
> finish. There's otherwise no guarantee that it could decode them
> completely (WAL might be gone, xmin horizon not old enough etc) once the
> slot is created. And the expected situation is that all transactions
> after the slot is created can be replayed.  And that's the same for 2PC
> as it is for "plain" transactions.
> 
> Makes sense?
> 
> 
> > If that is a spec, it is better to add notes to the PostgreSQL document.
> 
> Hm. Care to propose a doc patch? Note that I don't think it makes sense
> to explicitly refer to 2pc here, as the issue is more general.
> 
> Greetings,
> 
> Andres Freund




В списке pgsql-bugs по дате отправления:

Предыдущее
От: Amit Langote
Дата:
Сообщение: Re: Fwd: Problem with a "complex" upsert
Следующее
От: PG Bug reporting form
Дата:
Сообщение: BUG #15306: Use pkg-config for searching libxml2 header