Remove obsolete replication settings within TAP tests.
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 30 Sep 2020 00:02:58 +0000 (20:02 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 30 Sep 2020 00:03:19 +0000 (20:03 -0400)
PostgresNode.pm set "max_wal_senders = 5" for replication testing,
but this seems to be slightly too low for our current test suite.
Slower buildfarm members frequently report "number of requested standby
connections exceeds max_wal_senders" failures, due to old walsenders
not exiting instantaneously.  Usually, the test does not fail overall
because of automatic walreceiver restart, but sometimes the failure
becomes visible; and in any case such retries slow down the test.

That value came in with commit 89ac7004d, but was soon obsoleted by
f6d6d2920, which raised the built-in default from zero to 10; so that
PostgresNode.pm is actually setting it to less than the conservative
built-in default.  That seems pretty pointless, so let's remove the
special setting and let the default prevail, in hopes of making
the TAP tests more robust.

Likewise, the setting "max_replication_slots = 5" is obsolete and
can be removed.

While here, reverse-engineer a comment about why we're choosing
less-than-default values for some other settings.

(Note: before v12, max_wal_senders counted against max_connections
so that the latter setting also needs some fiddling with.)

Back-patch to v10 where the subscription tests were added.
It's likely that the older branches aren't pushing the boundaries
of max_wal_senders, but I'm disinclined to spend time trying to
figure out exactly when it started to be a problem.

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

src/test/perl/PostgresNode.pm

index 1488bffa2ba34edc36514edf09d706b31468bb60..47b5e58f24f81b02f16a159ded8d7e02de015b8f 100644 (file)
@@ -469,12 +469,11 @@ sub init
        {
            print $conf "wal_level = replica\n";
        }
-       print $conf "max_wal_senders = 5\n";
-       print $conf "max_replication_slots = 5\n";
        print $conf "max_wal_size = 128MB\n";
-       print $conf "shared_buffers = 1MB\n";
        print $conf "wal_log_hints = on\n";
        print $conf "hot_standby = on\n";
+       # conservative settings to ensure we can run multiple postmasters:
+       print $conf "shared_buffers = 1MB\n";
        print $conf "max_connections = 10\n";
    }
    else