Package: postgresql-plproxy
Version: 2.7-1
Severity: normal
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu zesty ubuntu-patch

Dear Maintainer,

The autopkgtests for postgresql-plproxy have been failing ever since
2.6-2 because postgres is not network namespace aware.

In Ubuntu, the attached patch was applied to achieve the following:

  * d/t/installcheck fixes:
    - Passing a port to pg_virtualenv even with newnet does not avoid
      port collisions, as pg_virtualenv (via pg_createcluster) is only
      looking at the configured clusters on the filesystem, not what is
      running in the current network namespace. Set an alternative
      PG_CLUSTER_CONF_ROOT instead, and set it before we call
      pg_virtualenv.
    - Set the socket directory for pg_createcluster, as we are using the
      standard port and that can lead to conflicts. This also requires
      making the AUTOPKGTEST_TMP directory world-writeable so the
      postgres user can write socket information there.


Thanks for considering the patch.

*** /tmp/tmpnVHESZ/postgresql-plproxy_2.7-1ubuntu1.debdiff
diff -Nru postgresql-plproxy-2.7/debian/tests/installcheck 
postgresql-plproxy-2.7/debian/tests/installcheck
--- postgresql-plproxy-2.7/debian/tests/installcheck    2016-09-25 
14:04:41.000000000 -0700
+++ postgresql-plproxy-2.7/debian/tests/installcheck    2017-02-28 
10:19:53.000000000 -0800
@@ -21,9 +21,19 @@
                        ;;
        esac
 
-       if ! newnet pg_virtualenv -c '-p 5432 --locale C' -i '--auth trust' -v 
$v \
-               make -f $PWD/Makefile \
-               installcheck PG_CONFIG=/usr/lib/postgresql/$v/bin/pg_config; 
then
+       # AUTOPKGTEST_TMP is not writeable by any user except root, but
+       # we want to use it for storing the Postgres socket
+       # Set PG_CLUSTER_CONF_ROOT, because although we are running in a
+       # network namespace (so we can reuse the default port),
+       # pg_virtualenv/pg_createcluster looks at the configured
+       # databases on the filesystem
+       # Set the socket directory because we are to re-use the port and
+       # there can be conflicts in the normal socket directory
+       if ! chmod o+w $AUTOPKGTEST_TMP && \
+               PG_CLUSTER_CONF_ROOT=$AUTOPKGTEST_TMP \
+               PG_CONFIG=/usr/lib/postgresql/$v/bin/pg_config \
+               newnet pg_virtualenv -c "-p 5432 --locale C -s 
$AUTOPKGTEST_TMP" -i '--auth trust' -v $v \
+               make -f $PWD/Makefile installcheck; then \
                        head -n 500 regression.diffs
                        exit 1
        fi


-- System Information:
Debian Release: stretch/sid
  APT prefers zesty
  APT policy: (500, 'zesty')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.10.0-8-generic (SMP w/4 CPU cores)
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

-- 
Nishanth Aravamudan
Ubuntu Server
Canonical Ltd

Reply via email to