Use a short socket directory path in pg_upgrade testing.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 4 Jul 2022 01:38:32 +0000 (21:38 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 4 Jul 2022 01:38:32 +0000 (21:38 -0400)
Several buildfarm members are failing the pg_upgrade test in
REL_15_STABLE, though the identical test is fine in HEAD.
On thorntail it's possible to see that the problem is an
overlength socket path name, and I bet the same is true
on the others.

The normally-started postmasters used in the test are already
set up with short socket directory paths, but we neglected to
tell pg_upgrade itself to do likewise when starting child
postmasters, and indeed it seems to be explicitly selecting
the test directory instead.

Back-patch to v15 where the current test script was introduced.
(The previous script might have the same issue, because I don't
see any use of -s/--socketdir in it either; but we've had no
complaints, so leave it alone for now.)

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

src/bin/pg_upgrade/t/002_pg_upgrade.pl

index 67e0be685683f0a21abf83e0ae0e679be2594024..2f9b13bf0ae0c8acdb8ccc3dc2ffa08b51fee253 100644 (file)
@@ -226,6 +226,7 @@ command_fails(
        '-D',         $newnode->data_dir,
        '-b',         $oldbindir . '/does/not/exist/',
        '-B',         $newbindir,
+       '-s',         $newnode->host,
        '-p',         $oldnode->port,
        '-P',         $newnode->port,
        '--check'
@@ -240,8 +241,9 @@ command_ok(
    [
        'pg_upgrade', '--no-sync',        '-d', $oldnode->data_dir,
        '-D',         $newnode->data_dir, '-b', $oldbindir,
-       '-B',         $newbindir,         '-p', $oldnode->port,
-       '-P',         $newnode->port,     '--check'
+       '-B',         $newbindir,         '-s', $newnode->host,
+       '-p',         $oldnode->port,     '-P', $newnode->port,
+       '--check'
    ],
    'run of pg_upgrade --check for new instance');
 ok(!-d $newnode->data_dir . "/pg_upgrade_output.d",
@@ -252,8 +254,8 @@ command_ok(
    [
        'pg_upgrade', '--no-sync',        '-d', $oldnode->data_dir,
        '-D',         $newnode->data_dir, '-b', $oldbindir,
-       '-B',         $newbindir,         '-p', $oldnode->port,
-       '-P',         $newnode->port
+       '-B',         $newbindir,         '-s', $newnode->host,
+       '-p',         $oldnode->port,     '-P', $newnode->port
    ],
    'run of pg_upgrade for new instance');
 ok( !-d $newnode->data_dir . "/pg_upgrade_output.d",