pgsql: Remove recovery test 011_crash_recovery.pl - Mailing list pgsql-committers

From Michael Paquier
Subject pgsql: Remove recovery test 011_crash_recovery.pl
Date
Msg-id E1pMhcf-000oVp-Vv@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Remove recovery test 011_crash_recovery.pl

This test has been added as of 857ee8e that has introduced the SQL
function txid_status(), with the purpose of checking that a transaction
ID still in-progress during a crash is correctly marked as aborted after
recovery finishes.

This test is unstable, and some configuration scenarios may that easier
to reproduce (wal_level=minimal, wal_compression=on) because the WAL
holding the information about the in-progress transaction ID may not
have made it to disk yet, hence a post-crash recovery may cause the same
XID to be reused, triggering a test failure.

We have discussed a few approaches, like making this function force a
WAL flush to make it reliable across crashes, but we don't want to pay a
performance penalty in some scenarios, as well.  The test could have
been tweaked to enforce a checkpoint but that actually breaks the
promise of the test to rely on a stable result of txid_status() after
a crash.

This issue has been reported a few times across the past years, with an
original report from Kyotaro Horiguchi.  The buildfarm machines tanager,
hachi and gokiburi enable wal_compression, and fail on this test
periodically.

Discussion: https://postgr.es/m/3163112.1674762209@sss.pgh.pa.us
Discussion: https://postgr.es/m/20210305.115011.558061052471425531.horikyota.ntt@gmail.com
Backpatch-through: 11

Branch
------
REL_14_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/96d42bd27fefed662dbf690348186902d4b6954e

Modified Files
--------------
src/test/recovery/t/011_crash_recovery.pl | 64 -------------------------------
1 file changed, 64 deletions(-)


pgsql-committers by date:

Previous
From: Thomas Munro
Date:
Subject: pgsql: Refactor rmtree() to use get_dirent_type().
Next
From: Michael Paquier
Date:
Subject: pgsql: Generate code for query jumbling through gen_node_support.pl