Re: Minimal logical decoding on standbys
tushar <tushar.ahuja@enterprisedb.com>
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Reduce the log level in 035_standby_logical_decoding.pl.
- 3034dc56ef4b 16.0 landed
-
035_standby_logical_decoding: Add missing waits for replication
- 57411c82ce86 16.0 landed
-
For cascading replication, wake physical and logical walsenders separately
- e101dfac3a53 16.0 landed
-
Handle logical slot conflicts on standby
- 26669757b6a7 16.0 landed
-
Support invalidating replication slots due to horizon and wal_level
- be87200efd93 16.0 landed
-
Prevent use of invalidated logical slot in CreateDecodingContext()
- 4397abd0a2af 16.0 landed
-
Replace replication slot's invalidated_at LSN with an enum
- 15f8203a5975 16.0 landed
-
Pass down table relation into more index relation functions
- 61b313e47eb9 16.0 landed
-
Assert only valid flag bits are passed to visibilitymap_set()
- a88a18b1250b 16.0 landed
-
Remove unused _bt_delitems_delete() argument.
- dc43492e46c7 14.0 cited
-
Add xl_btree_delete optimization.
- d2e5e20e5711 13.0 cited
On 03/13/2019 08:40 PM, tushar wrote:
> Hi ,
>
> I am getting a server crash on standby while executing
> pg_logical_slot_get_changes function , please refer this scenario
>
> Master cluster( ./initdb -D master)
> set wal_level='hot_standby in master/postgresql.conf file
> start the server , connect to psql terminal and create a physical
> replication slot ( SELECT * from
> pg_create_physical_replication_slot('p1');)
>
> perform pg_basebackup using --slot 'p1' (./pg_basebackup -D slave/ -R
> --slot p1 -v))
> set wal_level='logical' , hot_standby_feedback=on,
> primary_slot_name='p1' in slave/postgresql.conf file
> start the server , connect to psql terminal and create a logical
> replication slot ( SELECT * from
> pg_create_logical_replication_slot('t','test_decoding');)
>
> run pgbench ( ./pgbench -i -s 10 postgres) on master and select
> pg_logical_slot_get_changes on Slave database
>
> postgres=# select * from pg_logical_slot_get_changes('t',null,null);
> 2019-03-13 20:34:50.274 IST [26817] LOG: starting logical decoding
> for slot "t"
> 2019-03-13 20:34:50.274 IST [26817] DETAIL: Streaming transactions
> committing after 0/6C000060, reading WAL from 0/6C000028.
> 2019-03-13 20:34:50.274 IST [26817] STATEMENT: select * from
> pg_logical_slot_get_changes('t',null,null);
> 2019-03-13 20:34:50.275 IST [26817] LOG: logical decoding found
> consistent point at 0/6C000028
> 2019-03-13 20:34:50.275 IST [26817] DETAIL: There are no running
> transactions.
> 2019-03-13 20:34:50.275 IST [26817] STATEMENT: select * from
> pg_logical_slot_get_changes('t',null,null);
> TRAP: FailedAssertion("!(data == tupledata + tuplelen)", File:
> "decode.c", Line: 977)
> server closed the connection unexpectedly
> This probably means the server terminated abnormally
> before or while processing the request.
> The connection to the server was lost. Attempting reset: 2019-03-13
> 20:34:50.276 IST [26809] LOG: server process (PID 26817) was
> terminated by signal 6: Aborted
>
Andres - Do you think - this is an issue which needs to be fixed ?
--
regards,tushar
EnterpriseDB https://www.enterprisedb.com/
The Enterprise PostgreSQL Company