Re: [BUG] "FailedAssertion" reported when streaming in logical replication
Dilip Kumar <dilipbalaut@gmail.com>
From: Dilip Kumar <dilipbalaut@gmail.com>
To: Amit Kapila <amit.kapila16@gmail.com>
Cc: "tanghy.fnst@fujitsu.com" <tanghy.fnst@fujitsu.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2021-04-26T14:22:04Z
Lists: pgsql-hackers
Attachments
- v1-0001-Don-t-select-the-transaction-without-base-snapsho.patch (text/x-patch) patch v1-0001
On Mon, Apr 26, 2021 at 6:59 PM Amit Kapila <amit.kapila16@gmail.com> wrote: > > On Mon, Apr 26, 2021 at 5:55 PM Dilip Kumar <dilipbalaut@gmail.com> wrote: > > > > I am able to reproduce this and I think I have done the initial investigation. > > > > The cause of the issue is that, this transaction has only one change > > and that change is XLOG_HEAP2_NEW_CID, which is added through > > SnapBuildProcessNewCid. Basically, when we add any changes through > > SnapBuildProcessChange we set the base snapshot but when we add > > SnapBuildProcessNewCid this we don't set the base snapshot, because > > there is nothing to be done for this change. Now, this transaction is > > identified as the biggest transaction with non -partial changes, and > > now in ReorderBufferStreamTXN, it will return immediately because the > > base_snapshot is NULL. > > > > Your analysis sounds correct to me. > Thanks, I have attached a patch to fix this. -- Regards, Dilip Kumar EnterpriseDB: http://www.enterprisedb.com
Commits
-
Fix the bugs in selecting the transaction for streaming.
- ee4ba01dbbc3 14.0 landed