Re: [BUG] "FailedAssertion" reported when streaming in logical replication

Dilip Kumar <dilipbalaut@gmail.com>

From: Dilip Kumar <dilipbalaut@gmail.com>
To: "tanghy.fnst@fujitsu.com" <tanghy.fnst@fujitsu.com>
Cc: Amit Kapila <amit.kapila16@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2021-04-29T10:53:41Z
Lists: pgsql-hackers
On Thu, Apr 29, 2021 at 12:09 PM tanghy.fnst@fujitsu.com
<tanghy.fnst@fujitsu.com> wrote:
>
>
> On Thursday, April 29, 2021 3:18 PM, Dilip Kumar <dilipbalaut@gmail.com> wrote
>
> >I tried to think about how to write a test case for this scenario, but
> >I think it will not be possible to generate an automated test case for this.
> >Basically, we need 2 concurrent transactions and out of that,
> >we need one transaction which just has processed only one change i.e
> >XLOG_HEAP2_NEW_CID and another transaction should overflow the logical
> >decoding work mem, so that we select the wrong transaction which
> >doesn't have the base snapshot.  But how to control that the
> >transaction which is performing the DDL just write the
> >XLOG_HEAP2_NEW_CID wal and before it writes any other WAL we should
> >get the WAl from other transaction which overflows the buffer.
>
> Thanks for your updating.
> Actually, I tried to make the automated test for the problem, too. But made no process on this.
> Agreed on your opinion " not be possible to generate an automated test case for this ".

Thanks for trying this out.

> If anyone figure out a good solution for the test automation of this case.
> Please be kind to share that with us. Thanks.

+1

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



Commits

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