aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2015-07-07 12:49:18 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2015-07-07 12:49:18 -0400
commit58c58d1a9f4ba5372f683eb823e065ed12469e5e (patch)
treeed45c304817c6e374dee3d79a7eaf51b3e3cf300
parent992c6f0d2ca839ba54279fbc1a5d5e01e2e18f58 (diff)
downloadpostgresql-58c58d1a9f4ba5372f683eb823e065ed12469e5e.tar.gz
postgresql-58c58d1a9f4ba5372f683eb823e065ed12469e5e.zip
Fix portability issue in pg_upgrade test script: avoid $PWD.
SUSv2-era shells don't set the PWD variable, though anything more modern does. In the buildfarm environment this could lead to test.sh executing with PWD pointing to $HOME or another high-level directory, so that there were conflicts between concurrent executions of the test in different branch subdirectories. This appears to be the explanation for recent intermittent failures on buildfarm members binturong and dingo (and might well have something to do with the buildfarm script's failure to capture log files from pg_upgrade tests, too). To fix, just use `pwd` in place of $PWD. AFAICS test.sh is the only place in our source tree that depended on $PWD. Back-patch to all versions containing this script. Per buildfarm. Thanks to Oskari Saarenmaa for diagnosing the problem.
-rw-r--r--contrib/pg_upgrade/test.sh5
1 files changed, 3 insertions, 2 deletions
diff --git a/contrib/pg_upgrade/test.sh b/contrib/pg_upgrade/test.sh
index b7c6fc3b5b9..2bb471e69b6 100644
--- a/contrib/pg_upgrade/test.sh
+++ b/contrib/pg_upgrade/test.sh
@@ -62,7 +62,8 @@ esac
POSTMASTER_OPTS="-F -c listen_addresses=$LISTEN_ADDRESSES -k \"$PGHOST\""
export PGHOST
-temp_root=$PWD/tmp_check
+# don't rely on $PWD here, as old shells don't set it
+temp_root=`pwd`/tmp_check
if [ "$1" = '--install' ]; then
temp_install=$temp_root/install
@@ -105,7 +106,7 @@ PGDATA="$BASE_PGDATA.old"
export PGDATA
rm -rf "$BASE_PGDATA" "$PGDATA"
-logdir=$PWD/log
+logdir=`pwd`/log
rm -rf "$logdir"
mkdir "$logdir"