Thread: [HACKERS] Not getting error if ALTER SUBSCRIPTION syntax is wrong.
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
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
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
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
Attachment
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
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