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-26T07:56:47Z
Lists: pgsql-hackers
On Mon, 26 Apr 2021 at 12:45 PM, tanghy.fnst@fujitsu.com <
tanghy.fnst@fujitsu.com> wrote:

> Hi
>
> I think I may found a bug when using streaming in logical replication.
> Could anyone please take a look at this?
>
> Here's what I did to produce the problem.
> I set logical_decoding_work_mem and created multiple publications at
> publisher, created multiple subscriptions with "streaming = on" at
> subscriber.
> However, an assertion failed at publisher when I COMMIT and ROLLBACK
> multiple transactions at the same time.
>
> The log reported a FailedAssertion:
> TRAP: FailedAssertion("txn->size == 0", File: "reorderbuffer.c", Line:
> 3465, PID: 911730)
>
> The problem happens both in synchronous mode and asynchronous mode. When
> there are only one or two publications, It doesn't seem to happen. (In my
> case, there are 8 publications and the failure always happened).
>
> The scripts and the log are attached. It took me about 4 minutes to run
> the script on my machine.
> Please contact me if you need more specific info for the problem.



Thanks for reporting. I will look into it.

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

Commits

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