mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-02-17 19:30:00 +08:00
On sparc64+ext4, suppress test failures from known WAL read failure.
Buildfarm members kittiwake, tadarida and snapper began to fail frequently when commits3cd9c3b921
andf47ed79cc8
added tests of concurrency, but the problem was reachable before those commits. Back-patch to v10 (all supported versions). Discussion: https://postgr.es/m/20220116210241.GC756210@rfd.leadboat.com
This commit is contained in:
parent
81596645ca
commit
785a28e422
@ -11,6 +11,8 @@ use TestLib;
|
||||
|
||||
use Test::More tests => 5;
|
||||
|
||||
local $TODO = 'filesystem bug' if TestLib::has_wal_read_bug;
|
||||
|
||||
my ($node, $result);
|
||||
|
||||
#
|
||||
|
@ -315,6 +315,29 @@ sub perl2host
|
||||
|
||||
=pod
|
||||
|
||||
=item has_wal_read_bug()
|
||||
|
||||
Returns true if $tmp_check is subject to a sparc64+ext4 bug that causes WAL
|
||||
readers to see zeros if another process simultaneously wrote the same offsets.
|
||||
Consult this in tests that fail frequently on affected configurations. The
|
||||
bug has made streaming standbys fail to advance, reporting corrupt WAL. It
|
||||
has made COMMIT PREPARED fail with "could not read two-phase state from WAL".
|
||||
Non-WAL PostgreSQL reads haven't been affected, likely because those readers
|
||||
and writers have buffering systems in common. See
|
||||
https://postgr.es/m/20220116210241.GC756210@rfd.leadboat.com for details.
|
||||
|
||||
=cut
|
||||
|
||||
sub has_wal_read_bug
|
||||
{
|
||||
return
|
||||
$Config{osname} eq 'linux'
|
||||
&& $Config{archname} =~ /^sparc/
|
||||
&& !run_log([ qw(df -x ext4), $tmp_check ], '>', '/dev/null', '2>&1');
|
||||
}
|
||||
|
||||
=pod
|
||||
|
||||
=item system_log(@cmd)
|
||||
|
||||
Run (via C<system()>) the command passed as argument; the return
|
||||
|
Loading…
Reference in New Issue
Block a user