Обсуждение: [HACKERS] Not getting error if ALTER SUBSCRIPTION syntax is wrong.

Поиск
Список
Период
Сортировка

[HACKERS] Not getting error if ALTER SUBSCRIPTION syntax is wrong.

От
tushar
Дата:
Hi,

While testing 'logical replication' against v10 , i encountered one 
issue where data stop migrating after ALTER PUBLICATION.

X Server
\\ Make sure wal_level is set to logical in postgresql.conf file
\\create table/Insert 1 row -> create table test(n int); insert into t 
values (1);
\\create publication for all -> create publication pub for ALL TABLES ;


Y server

\\ Make sure wal_level is set to logical in postgresql.conf file
\\create table -> create table test(n int);

\\create Subscription

CREATE SUBSCRIPTION sub CONNECTION 'host=localhost dbname=postgres 
port=5432 ' PUBLICATION pub;

postgres=# select * from test; n
--- 1
(1 row)

\\Alter subscription
postgres=# alter subscription sub connection 'host=localhost 
dbname=postgres PUBLICATION pub';
ALTER SUBSCRIPTION

X server
postgres=# insert into test values (1);
INSERT 0 1
postgres=# select * from test; n
--- 1 1
(2 rows)

Y server
postgres=# select * from test; n
--- 1
(1 row)

I think probably syntax of alter subscription is not correct but 
surprisingly it is not throwing an error.

-- 
regards,tushar
EnterpriseDB  https://www.enterprisedb.com/
The Enterprise PostgreSQL Company




Re: [HACKERS] Not getting error if ALTER SUBSCRIPTION syntax iswrong.

От
Petr Jelinek
Дата:
On 05/05/17 14:40, tushar wrote:
> Hi,
> 
> While testing 'logical replication' against v10 , i encountered one
> issue where data stop migrating after ALTER PUBLICATION.
> 
> X Server
> \\ Make sure wal_level is set to logical in postgresql.conf file
> \\create table/Insert 1 row -> create table test(n int); insert into t
> values (1);
> \\create publication for all -> create publication pub for ALL TABLES ;
> 
> 
> Y server
> 
> \\ Make sure wal_level is set to logical in postgresql.conf file
> \\create table -> create table test(n int);
> 
> \\create Subscription
> 
> CREATE SUBSCRIPTION sub CONNECTION 'host=localhost dbname=postgres
> port=5432 ' PUBLICATION pub;
> 
> postgres=# select * from test;
>  n
> ---
>  1
> (1 row)
> 
> \\Alter subscription
> postgres=# alter subscription sub connection 'host=localhost
> dbname=postgres PUBLICATION pub';
> ALTER SUBSCRIPTION
> 
> X server
> postgres=# insert into test values (1);
> INSERT 0 1
> postgres=# select * from test;
>  n
> ---
>  1
>  1
> (2 rows)
> 
> Y server
> postgres=# select * from test;
>  n
> ---
>  1
> (1 row)
> 
> I think probably syntax of alter subscription is not correct but
> surprisingly it is not throwing an error.
> 

Syntax of ALTER command is correct, syntax of the connection string is
not, you are probably getting errors in log from the replication worker.

We could check validity of the connection string though to complain
immediately like we do in CREATE.

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



Re: [HACKERS] Not getting error if ALTER SUBSCRIPTION syntax is wrong.

От
Robert Haas
Дата:
On Fri, May 5, 2017 at 1:51 PM, Petr Jelinek
<petr.jelinek@2ndquadrant.com> wrote:
> Syntax of ALTER command is correct, syntax of the connection string is
> not, you are probably getting errors in log from the replication worker.
>
> We could check validity of the connection string though to complain
> immediately like we do in CREATE.

Well if CREATE checks the validity, surely it's a bug if ALTER doesn't
do the same.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



Re: [HACKERS] Not getting error if ALTER SUBSCRIPTION syntax iswrong.

От
Petr Jelinek
Дата:
On 05/05/17 19:51, Petr Jelinek wrote:
> On 05/05/17 14:40, tushar wrote:
>> Hi,
>>
>> While testing 'logical replication' against v10 , i encountered one
>> issue where data stop migrating after ALTER PUBLICATION.
>>
>> X Server
>> \\ Make sure wal_level is set to logical in postgresql.conf file
>> \\create table/Insert 1 row -> create table test(n int); insert into t
>> values (1);
>> \\create publication for all -> create publication pub for ALL TABLES ;
>>
>>
>> Y server
>>
>> \\ Make sure wal_level is set to logical in postgresql.conf file
>> \\create table -> create table test(n int);
>>
>> \\create Subscription
>>
>> CREATE SUBSCRIPTION sub CONNECTION 'host=localhost dbname=postgres
>> port=5432 ' PUBLICATION pub;
>>
>> [...]
>>
>> I think probably syntax of alter subscription is not correct but
>> surprisingly it is not throwing an error.
>>
> 
> Syntax of ALTER command is correct, syntax of the connection string is
> not, you are probably getting errors in log from the replication worker.
> 
> We could check validity of the connection string though to complain
> immediately like we do in CREATE.
> 

The attached does exactly that.

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

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Вложения

Re: [HACKERS] Not getting error if ALTER SUBSCRIPTION syntax is wrong.

От
Noah Misch
Дата:
On Sat, May 06, 2017 at 02:44:27PM +0200, Petr Jelinek wrote:
> On 05/05/17 19:51, Petr Jelinek wrote:
> > On 05/05/17 14:40, tushar wrote:
> >> Hi,
> >>
> >> While testing 'logical replication' against v10 , i encountered one
> >> issue where data stop migrating after ALTER PUBLICATION.
> >>
> >> X Server
> >> \\ Make sure wal_level is set to logical in postgresql.conf file
> >> \\create table/Insert 1 row -> create table test(n int); insert into t
> >> values (1);
> >> \\create publication for all -> create publication pub for ALL TABLES ;
> >>
> >>
> >> Y server
> >>
> >> \\ Make sure wal_level is set to logical in postgresql.conf file
> >> \\create table -> create table test(n int);
> >>
> >> \\create Subscription
> >>
> >> CREATE SUBSCRIPTION sub CONNECTION 'host=localhost dbname=postgres
> >> port=5432 ' PUBLICATION pub;
> >>
> >> [...]
> >>
> >> I think probably syntax of alter subscription is not correct but
> >> surprisingly it is not throwing an error.
> >>
> > 
> > Syntax of ALTER command is correct, syntax of the connection string is
> > not, you are probably getting errors in log from the replication worker.
> > 
> > We could check validity of the connection string though to complain
> > immediately like we do in CREATE.
> > 
> 
> The attached does exactly that.

[Action required within three days.  This is a generic notification.]

The above-described topic is currently a PostgreSQL 10 open item.  Peter,
since you committed the patch believed to have created it, you own this open
item.  If some other commit is more relevant or if this does not belong as a
v10 open item, please let us know.  Otherwise, please observe the policy on
open item ownership[1] and send a status update within three calendar days of
this message.  Include a date for your subsequent status update.  Testers may
discover new open items at any time, and I want to plan to get them all fixed
well in advance of shipping v10.  Consequently, I will appreciate your efforts
toward speedy resolution.  Thanks.

[1] https://www.postgresql.org/message-id/20170404140717.GA2675809%40tornado.leadboat.com



Re: [HACKERS] Not getting error if ALTER SUBSCRIPTION syntax iswrong.

От
Peter Eisentraut
Дата:
On 5/6/17 08:44, Petr Jelinek wrote:
>> We could check validity of the connection string though to complain
>> immediately like we do in CREATE.
> 
> The attached does exactly that.

committed

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services