BUG #17670: Logical Replication data may be lost on the subscription under certain scenarios
От | PG Bug reporting form |
---|---|
Тема | BUG #17670: Logical Replication data may be lost on the subscription under certain scenarios |
Дата | |
Msg-id | 17670-8266c823f774a63f@postgresql.org обсуждение исходный текст |
Ответы |
Re: BUG #17670: Logical Replication data may be lost on the subscription under certain scenarios
Re: BUG #17670: Logical Replication data may be lost on the subscription under certain scenarios |
Список | pgsql-bugs |
The following bug has been logged on the website: Bug reference: 17670 Logged by: Yunhe Xu Email address: xyh@nvn.xyz PostgreSQL version: 14.4 Operating system: rhel 7 Description: Logical Replication data may be lost on the subscription under certain scenarios. The following is review process. * Logical Replication Information t1=# select * from pg_publication_tables ; pubname | schemaname | tablename ------------+------------+---------------- pub1 | public | t_test1 t2=# select srrelid::regclass,* from pg_subscription_rel ; srrelid | srsubid | srrelid | srsubstate | srsublsn ---------+---------+---------+------------+----------- t_test1 | 57551 | 41170 | r | 0/696E418 t1=# select application_name,state from pg_stat_replication where application_name='test2_sub'; application_name | state ------------------+----------- test2_sub | streaming * Verify the status is normal t1=# insert into t_test1 values (1); INSERT 0 1 t1=# select * from t_test1; id ---- 1 t2=# select * from t_test1; id ---- 1 * Then delete this table on subscription : t2=# alter table t_test1 rename TO t_test2; ALTER TABLE * Now,do DMLs t1=# insert into t_test1 values (2); INSERT 0 1 t1=# delete from t_test1 where id=1; DELETE 1 t1=# * The log gives some errors 2022-10-28 15:14:07.919 CST,,,2600,,635b813f.a28,2,,2022-10-28 15:14:07 CST,4/12,0,ERROR,55000,"logical replication target relation ""public.t_test1"" does not exist",,,,,,,,,"","logical replication worker",,0 * OK,Let me create this table t2=# create table t_test1 (id int PRIMARY KEY); CREATE TABLE * At this point, the log is no longer showing errors.But the incremental data is lost. t2=# select * from t_test1; id ---- (0 rows) t1=# insert into t_test1 values (3); INSERT 0 1 t1=# insert into t_test1 values (4); INSERT 0 1 t2=# select * from t_test1; id ---- (0 rows) t2=# select * from t_test2 ; id ---- 1 (1 row) * Still no error. * Now modify the previous table back t2=# drop table t_test1 ; DROP TABLE t2=# alter table t_test2 rename TO t_test1; ALTER TABLE t1=# insert into t_test1 values (5); INSERT 0 1 t1=# select * from t_test1; id ---- 2 3 4 5 (4 rows) t2=# select * from t_test1; id ---- 1 5 (2 rows) * The middle operation-delete id=1 and insert id=3,4-is loss. *Please confirm if this is a BUG. Thanks. Yunhe Xu
В списке pgsql-bugs по дате отправления: