Hi, On Tue, 20 Feb 2024 at 06:59, Euler Taveira <eu...@eulerto.com> wrote: > > On Mon, Feb 19, 2024, at 7:22 AM, Shlok Kyal wrote: > > I have reviewed the v21 patch. And found an issue. > > Initially I started the standby server with a new postgresql.conf file > (not the default postgresql.conf that is present in the instance). > pg_ctl -D ../standby start -o "-c config_file=/new_path/postgresql.conf" > > And I have made 'max_replication_slots = 1' in new postgresql.conf and > made 'max_replication_slots = 0' in the default postgresql.conf file. > Now when we run pg_createsubscriber on standby we get error: > pg_createsubscriber: error: could not set replication progress for the > subscription "pg_createsubscriber_5_242843": ERROR: cannot query or > manipulate replication origin when max_replication_slots = 0 > > > That's by design. See [1]. The max_replication_slots parameter is used as the > maximum number of subscriptions on the server. > > NOTICE: dropped replication slot "pg_createsubscriber_5_242843" on publisher > pg_createsubscriber: error: could not drop publication > "pg_createsubscriber_5" on database "postgres": ERROR: publication > "pg_createsubscriber_5" does not exist > pg_createsubscriber: error: could not drop replication slot > "pg_createsubscriber_5_242843" on database "postgres": ERROR: > replication slot "pg_createsubscriber_5_242843" does not exist > > > That's a bug and should be fixed. > > [1] > https://www.postgresql.org/docs/current/runtime-config-replication.html#RUNTIME-CONFIG-REPLICATION-SUBSCRIBER > I think you misunderstood the issue, I reported.
My main concern is that the standby server is using different 'postgresql.conf' file (the default file) after : + /* Start subscriber and wait until accepting connections */ + pg_log_info("starting the subscriber"); + if (!dry_run) + start_standby_server(pg_ctl_path, opt.subscriber_dir, server_start_log); But we initially started the standby server (before running the pg_createsubscriber) with a new postgresql.conf file (different from the default file. for this example created inside the 'new_path' folder). pg_ctl -D ../standby -l standby.log start -o "-c config_file=../new_path/postgresql.conf" So, when we run the pg_createsubscriber, all the initial checks will be run on the standby server started using the new postgresql.conf file. But during pg_createsubscriber, it will restart the standby server using the default postgresql.conf file. And this might create some issues. Thanks and Regards, Shlok Kyal