has_wal_read_bug
Thomas Munro <thomas.munro@gmail.com>
From: Thomas Munro <thomas.munro@gmail.com>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Cc: Noah Misch <noah@leadboat.com>
Date: 2022-05-16T23:50:51Z
Lists: pgsql-hackers
027_stream_regress.pl has:
if (PostgreSQL::Test::Utils::has_wal_read_bug)
{
# We'd prefer to use Test::More->builder->todo_start, but the bug causes
# this test file to die(), not merely to fail.
plan skip_all => 'filesystem bug';
}
Is the die() referenced there the one from the system_or_bail() call
that commit a096813b got rid of?
Here's a failure in 031_recovery_conflict.pl that smells like
concurrent pread() corruption:
https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=tadarida&dt=2022-05-16%2015%3A45%3A54
2022-05-16 18:10:33.375 CEST [52106:1] LOG: started streaming WAL
from primary at 0/3000000 on timeline 1
2022-05-16 18:10:33.621 CEST [52105:5] LOG: incorrect resource
manager data checksum in record at 0/338FDC8
2022-05-16 18:10:33.622 CEST [52106:2] FATAL: terminating walreceiver
process due to administrator command
Presumably we also need the has_wal_read_bug kludge in all these new
tests that use replication.
Commits
-
If wait_for_catchup fails under has_wal_read_bug, skip balance of test.
- e5f94d42eb38 15.2 landed
- 30d98e14a889 16.0 landed
-
Under has_wal_read_bug, skip recovery/t/032_relfilenode_reuse.pl.
- a9f8ca6005f1 16.0 cited
-
Log regression.diffs in 027_stream_regress.pl.
- a096813b6f58 15.0 cited