Subject: A failure in prepared_xacts test

From: Richard Guo <[email-masked]>
Date: Mon, 29 Apr 2024 09:12:48 +0800

Yesterday I noticed a failure on cirrus-ci for the 'Right Semi Join'
patch.  The failure can be found at [1], and it looks like:

--- /tmp/cirrus-ci-build/src/test/regress/expected/prepared_xacts.out
2024-04-27 00:41:25.831297000 +0000
+++
/tmp/cirrus-ci-build/build/testrun/regress-running/regress/results/prepared_xacts.out
  2024-04-27 00:45:50.261369000 +0000
@@ -83,8 +83,9 @@
 SELECT gid FROM pg_prepared_xacts;
  gid
 ------
+ gxid
  foo3
-(1 row)
+(2 rows)

Upon closer look, it seems that this issue is not caused by the patch
about 'Right Semi Join', because this query, which initially included
two left joins, can actually be reduced to a function scan after
removing these two useless left joins.  It seems that no semi-joins
would be involved.

EXPLAIN SELECT gid FROM pg_prepared_xacts;
                                 QUERY PLAN
----------------------------------------------------------------------------
 Function Scan on pg_prepared_xact p  (cost=0.00..10.00 rows=1000 width=32)
(1 row)

Does anyone have any clue to this failure?

FWIW, after another run of this test, the failure just disappears.  Does
it suggest that the test case is flaky?

[1]
https://api.cirrus-ci.com/v1/artifact/task/6220592364388352/testrun/build/testrun/regress-running/regress/regression.diffs

Thanks
Richard

---

From: Alexander Lakhin <[email-masked]>
Date: Mon, 29 Apr 2024 08:00:00 +0300

Hello Richard,

> it suggest that the test case is flaky?

I think this could be caused by the ecpg test twophase executed
simultaneously with the test prepared_xacts thanks to meson's jobs
parallelization.

Best regards,
Alexander