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-27T06:51:53Z
Lists: pgsql-hackers
On Tue, Apr 27, 2021 at 12:05 PM Amit Kapila <amit.kapila16@gmail.com> wrote:
> > > Can't we use 'txns_by_base_snapshot_lsn' list for this purpose? It is
> > > ensured in ReorderBufferSetBaseSnapshot that we always assign
> > > base_snapshot to a top-level transaction if the current is a known
> > > subxact. I think that will be true because we always form xid-subxid
> > > relation before processing each record in
> > > LogicalDecodingProcessRecord.
> >
> > Yeah, we can do that, but here we are only interested in top
> > transactions and this list will give us sub-transaction as well so we
> > will have to skip it in the below if condition.
> >
>
> I am not so sure about this point. I have explained above why I think
> there won't be any subtransactions in this. Can you please let me know
> what am I missing if anything?

Got your point, yeah this will only have top transactions so we can
use this.  I will change this in the next patch.  In fact we can put
an assert that it should not be an sub transaction?

-- 
Regards,
Dilip Kumar
EnterpriseDB: http://www.enterprisedb.com



Commits

  1. Fix the bugs in selecting the transaction for streaming.