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