Re: A failure in prepared_xacts test

Alexander Law <exclusion@gmail.com>

From: Alexander Lakhin <exclusion@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>, Michael Paquier <michael@paquier.xyz>
Cc: Richard Guo <guofenglinux@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2024-04-29T05:30:00Z
Lists: pgsql-hackers
Hello Tom and Michael,

29.04.2024 08:11, Tom Lane wrote:
> Michael Paquier <michael@paquier.xyz> writes:
>> If you grep the source tree, you'd notice that a prepared transaction
>> named gxid only exists in the 2PC tests of ECPG, in
>> src/interfaces/ecpg/test/sql/twophase.pgc.  So the origin of the
>> failure comes from a race condition due to test parallelization,
>> because the scan of pg_prepared_xacts affects all databases with
>> installcheck, and in your case it means that the scan of
>> pg_prepared_xacts was running in parallel of the ECPG tests with an
>> installcheck.
> Up to now, we've only worried about whether tests running in parallel
> within a single test suite can interact.  It's quite scary to think
> that the meson setup has expanded the possibility of interactions
> to our entire source tree.  Maybe that was a bad idea and we should
> fix the meson infrastructure to not do that.  I fear that otherwise,
> we'll get bit regularly by very-low-probability bugs of this kind.

Yes, I'm afraid of the same. For example, the test failure [1] is of that
ilk, I guess.

[1] https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=rorqual&dt=2024-04-17%2016%3A33%3A23

Best regards,
Alexander



Commits

  1. Remove auth-options support from initdb

  2. Make two-phase tests of ECPG and main suite more concurrent-proof

  3. initdb: Add options --auth-local and --auth-host