On 2019-01-17 13:42:40 +0300, Alexander Lakhin wrote:
> 17.01.2019 13:25, Petr Jelinek wrote:
> > On 16/01/2019 20:09, Andres Freund wrote:
> >> On 2019-01-16 14:56:34 +0000, PG Bug reporting form wrote:
> >>> The following bug has been logged on the website:
> >>>
> >>> Bug reference: 15594
> >>> Logged by: Alexander Lakhin
> >>> Email address: exclusion@gmail.com
> >>> PostgreSQL version: 11.1
> >>> Operating system: Ubuntu 18.04
> >>> Description:
> >>>
> >>> Some tests in contrib/test_decoding/output_iso/ occasionally fail.
> >>> To reproduce it reliable you can do:
> >>> # sed 's/ mxact / $(shell printf "mxact %.0s" `seq 1000` ) /' -i
> >>> contrib/test_decoding/Makefile
> >>> # make check -C contrib/test_decoding/
> >>>
> >>> ...
> >>>
> >>> I observe this issue with the tests: mxact, delayed_startup, and
> >>> ondisk_startup.
> >> Interesting - I've not seen that on the buildfarm before, or in local tests
> >> with a lot of repetitions. I assume the problem vanishes if you add 'skip-empty-xacts', '1'
> >> to the options of pg_logical_slot_get_changes()?
> >>
> > I bet those empty transactions are from autovacuum. The probability of
> > hitting this could be exaggerated by the fact that the test is run
> > within the same instance 1000x rather than running the make check 1000x
> > so we produce plenty of catalog bloat for autovacuum to clean.
> >
> Yes, it's almost impossible to hit this with `make check`, but with
> `make installcheck` the probability is much higher as we use an existing
> instance.
> I've reproduced it with `make check` just to make it simple.
I'll apply the fix for this, but please note that installcheck
*intentionally* is disabled for test_decoding.
Greetings,
Andres Freund