Re: After an error - pg_replication_slot is dropped

From: Petr Jelinek <petr(dot)jelinek(at)2ndquadrant(dot)com>
To: tushar <tushar(dot)ahuja(at)enterprisedb(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: After an error - pg_replication_slot is dropped
Date: 2018-02-16 10:32:39
Message-ID: a2ed6e42-439d-c3e9-07c1-aa1b893f4ccb@2ndquadrant.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On 16/02/18 10:51, tushar wrote:
> Hi,
>
> Please refer this straight forward scenario  against latest sources of v11.
>
> [centos(at)centos-cpula bin]$ ./psql  postgres
> psql (11devel)
> Type "help" for help.
>
> postgres=#  SELECT * FROM
> pg_create_logical_replication_slot('regression_slot1', 'test_decoding',
> true);
>     slot_name     |    lsn
> ------------------+-----------
>  regression_slot1 | 0/40001E8
> (1 row)
>
> postgres=#
> postgres=# select * from pg_replication_slots;
>     slot_name     |    plugin     | slot_type | datoid | database |
> temporary | active | active_pid | xmin | catalog_xmin | restart_lsn |
> confirmed_flush_lsn
> ------------------+---------------+-----------+--------+----------+-----------+--------+------------+------+--------------+-------------+---------------------
>
>  regression_slot1 | test_decoding | logical   |  13220 | postgres |
> t         | t      |      28015 |      |          557 | 0/40001B0 |
> 0/40001E8
> (1 row)
>
> --Try to again create  the same slot , getting an error - which is expected
> postgres=#
> postgres=#  SELECT * FROM
> pg_create_logical_replication_slot('regression_slot1', 'test_decoding',
> true);
> ERROR:  replication slot "regression_slot1" already exists
> postgres=#
>
> --No slot found
> postgres=# select * from pg_replication_slots;
>  slot_name | plugin | slot_type | datoid | database | temporary | active
> | active_pid | xmin | catalog_xmin | restart_lsn | confirmed_flush_lsn
> -----------+--------+-----------+--------+----------+-----------+--------+------------+------+--------------+-------------+---------------------
>
> (0 rows)
>

It's because you are creating temporary slot. Temporary slots are
removed on error, that's a documented behavior.

--
Petr Jelinek http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message tushar 2018-02-16 10:34:56 Server Crash while executing pg_replication_slot_advance (second time)
Previous Message Masahiko Sawada 2018-02-16 10:26:30 Re: Server crash in pg_replication_slot_advance function