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.