Remove unstable, unnecessary test; fix typo
authorAlvaro Herrera <[email protected]>
Fri, 1 Oct 2021 21:03:11 +0000 (18:03 -0300)
committerAlvaro Herrera <[email protected]>
Fri, 1 Oct 2021 21:03:11 +0000 (18:03 -0300)
Commit ff9f111bce24 added some test code that's unportable and doesn't
add meaningful coverage.  Remove it rather than try and get it to work
everywhere.

While at it, fix a typo in a log message added by the aforementioned
commit.

Backpatch to 14.

Discussion: https://postgr.es/m/3000074.1632947632@sss.pgh.pa.us

src/backend/access/transam/xlog.c
src/test/recovery/t/026_overwrite_contrecord.pl
src/test/recovery/t/idiosyncratic_copy [deleted file]

index 1388afdfb02872ff52d2a0665d9c6538d7f9a071..f8c714b7b7ab694aea47fc81336f361ddc5bede5 100644 (file)
@@ -10598,7 +10598,7 @@ VerifyOverwriteContrecord(xl_overwrite_contrecord *xlrec, XLogReaderState *state
             LSN_FORMAT_ARGS(state->overwrittenRecPtr));
 
    ereport(LOG,
-           (errmsg("sucessfully skipped missing contrecord at %X/%X, overwritten at %s",
+           (errmsg("successfully skipped missing contrecord at %X/%X, overwritten at %s",
                    LSN_FORMAT_ARGS(xlrec->overwritten_lsn),
                    timestamptz_to_str(xlrec->overwrite_time))));
 
index acf9bd08d1bd53e219da68f795a1f4059d68fed8..1725a97531805771a6452c90a2a0016dc9b34502 100644 (file)
@@ -10,7 +10,7 @@ use PostgresNode;
 use TestLib;
 use Test::More;
 
-plan tests => 5;
+plan tests => 3;
 
 # Test: Create a physical replica that's missing the last WAL file,
 # then restart the primary to create a divergent WAL file and observe
@@ -89,120 +89,8 @@ ok($node_standby->safe_psql('postgres', 'select * from foo') eq 'hello',
 my $log = slurp_file($node_standby->logfile);
 like(
    $log,
-   qr[sucessfully skipped missing contrecord at],
+   qr[successfully skipped missing contrecord at],
    "found log line in standby");
 
 $node->stop;
 $node_standby->stop;
-
-
-# Second test: a standby that receives WAL via archive/restore commands.
-$node = PostgresNode->new('primary2');
-$node->init(
-   has_archiving => 1,
-   extra         => ['--wal-segsize=1']);
-$node->set_replication_conf;
-
-# Note: consistent use of forward slashes here avoids any escaping problems
-# that arise from use of backslashes. That means we need to double-quote all
-# the paths in the archive_command
-my $perlbin = TestLib::perl2host($^X);
-$perlbin =~ s!\\!/!g if $TestLib::windows_os;
-my $archivedir = $node->archive_dir;
-$archivedir =~ s!\\!/!g if $TestLib::windows_os;
-$node->append_conf(
-   'postgresql.conf',
-   qq{
-archive_command = '"$perlbin" "$FindBin::RealBin/idiosyncratic_copy" "%p" "$archivedir/%f"'
-wal_level = replica
-max_wal_senders = 2
-wal_keep_size = 1GB
-});
-# Make sure that Msys perl doesn't complain about difficulty in setting locale
-# when called from the archive_command.
-local $ENV{PERL_BADLANG} = 0;
-$node->start;
-$node->backup('backup');
-
-$node_standby = PostgresNode->new('standby2');
-$node_standby->init_from_backup($node, 'backup', has_restoring => 1);
-
-$node_standby->start;
-
-$node->safe_psql('postgres', 'create table filler (a int)');
-# First, measure how many bytes does the insertion of 1000 rows produce
-$start_lsn =
-  $node->safe_psql('postgres', q{select pg_current_wal_insert_lsn() - '0/0'});
-$node->safe_psql('postgres',
-   'insert into filler select * from generate_series(1, 1000)');
-$end_lsn =
-  $node->safe_psql('postgres', q{select pg_current_wal_insert_lsn() - '0/0'});
-$rows_walsize = $end_lsn - $start_lsn;
-
-# Now consume all remaining room in the current WAL segment, leaving
-# space enough only for the start of a largish record.
-$node->safe_psql(
-   'postgres', qq{
-WITH setting AS (
-  SELECT setting::int AS wal_segsize
-    FROM pg_settings WHERE name = 'wal_segment_size'
-)
-INSERT INTO filler
-SELECT g FROM setting,
-  generate_series(1, 1000 * (wal_segsize - ((pg_current_wal_insert_lsn() - '0/0') % wal_segsize)) / $rows_walsize) g
-});
-
-# Now block idiosyncratic_copy from creating the next WAL in the replica
-my $archivedgood = $node->safe_psql('postgres',
-   q{SELECT pg_walfile_name(pg_current_wal_insert_lsn())});
-my $archivedfail = $node->safe_psql(
-   'postgres',
-   q{SELECT pg_walfile_name(pg_current_wal_insert_lsn() + setting::integer)
-   from pg_settings where name = 'wal_segment_size'});
-open my $filefail, ">", "$archivedir/$archivedfail.fail"
-  or die "can't open $archivedir/$archivedfail.fail: $!";
-
-my $currlsn =
-  $node->safe_psql('postgres', 'select pg_current_wal_insert_lsn() - 1000');
-
-# Now produce a large WAL record in a transaction that we leave open
-my ($in, $out);
-my $timer = IPC::Run::timeout(180);
-my $h =
-  $node->background_psql('postgres', \$in, \$out, $timer, on_error_stop => 0);
-
-$in .= qq{BEGIN;
-SELECT pg_logical_emit_message(true, 'test 026', repeat('somenoise', 8192));
-};
-$h->pump_nb;
-$node->poll_query_until(
-   'postgres',
-   "SELECT last_archived_wal >= '$archivedgood' FROM pg_stat_archiver"),
-  or die "Timed out while waiting for standby to catch up";
-
-# Now crash the node with the transaction open
-$node->stop('immediate');
-$h->finish();
-$node->start;
-$node->safe_psql('postgres', 'create table witness (a int);');
-$node->safe_psql('postgres', 'insert into witness values (42)');
-unlink "$archivedir/$archivedfail.fail"
-  or die "can't unlink $archivedir/$archivedfail.fail: $!";
-$node->safe_psql('postgres', 'select pg_switch_wal()');
-
-$until_lsn = $node->safe_psql('postgres', "SELECT pg_current_wal_lsn()");
-$caughtup_query = "SELECT '$until_lsn'::pg_lsn <= pg_last_wal_replay_lsn()";
-$node_standby->poll_query_until('postgres', $caughtup_query)
-  or die "Timed out while waiting for standby to catch up";
-
-my $answer = $node_standby->safe_psql('postgres', 'select * from witness');
-is($answer, '42', 'witness tuple appears');
-
-# Verify message appears in standby's log
-$log = slurp_file($node_standby->logfile);
-like(
-   $log,
-   qr[sucessfully skipped missing contrecord at],
-   "found log line in standby");
-$node->stop;
-$node_standby->stop;
diff --git a/src/test/recovery/t/idiosyncratic_copy b/src/test/recovery/t/idiosyncratic_copy
deleted file mode 100755 (executable)
index 83e25e0..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-use File::Copy;
-
-die "wrong number of arguments" if @ARGV != 2;
-my ($source, $target) = @ARGV;
-if ($^O eq 'msys')
-{
-   # make a windows path look like an msys path if necessary
-   $source =~ s!^([A-Za-z]):!'/' . lc($1)!e;
-   $source =~ s!\\!/!g;
-}
-
-die "$0: failed copy of $target" if -f "$target.fail";
-
-copy($source, $target) or die "couldn't copy $source to $target: $!";
-print STDERR "$0: archived $source to $target successfully\n";