Re: pgsql: Skip empty transaction stream in test_decoding. - Mailing list pgsql-committers

From Michael Paquier
Subject Re: pgsql: Skip empty transaction stream in test_decoding.
Date
Msg-id 20201109014118.GD1695@paquier.xyz
Whole thread Raw
In response to pgsql: Skip empty transaction stream in test_decoding.  (Amit Kapila <akapila@postgresql.org>)
Responses Re: pgsql: Skip empty transaction stream in test_decoding.  (Amit Kapila <amit.kapila16@gmail.com>)
List pgsql-committers
Hi Amit,

On Fri, Sep 11, 2020 at 04:43:59AM +0000, Amit Kapila wrote:
> Skip empty transaction stream in test_decoding.
>
> We were decoding empty transactions via streaming APIs added in commit
> 45fdc9738b even when the user used the option 'skip-empty-xacts'. The APIs
> makes no effort to skip empty xacts under the assumption that we will
> never try to stream such transactions. However, that is not true because
> we can pick to stream a transaction that has change messages for
> REORDER_BUFFER_CHANGE_INTERNAL_SNAPSHOT and we don't send such messages to
> downstream rather they are just to update the internal state. So, we need
> to skip such xacts when plugin uses the option 'skip-empty-xacts'.

Anole has reported the following failure in a test introduced by this
commit:
https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=anole&dt=2020-11-08%2017%3A49%3A13

Here is the diff:
---
/home/pgbfarm/buildroot/HEAD/pgsql.build/contrib/test_decoding/expected/concurrent_stream.out
2020-09-11 04:59:46 -0600
+++
/home/pgbfarm/buildroot/HEAD/pgsql.build/contrib/test_decoding/output_iso/results/concurrent_stream.out
2020-11-08 12:31:10 -0700
@@ -13,7 +13,6 @@
 opening a streamed block for transaction
 streaming change for transaction
 closing a streamed block for transaction
-committing streamed transaction
 ?column?

This smells like a race condition.
--
Michael

Attachment

pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: pgsql: Doc: suppress PDF build warning in 9.6 branch.
Next
From: Amit Kapila
Date:
Subject: Re: pgsql: Skip empty transaction stream in test_decoding.