Re: Support custom socket directory in pg_upgrade

Thomas Munro <thomas.munro@enterprisedb.com>

From: Thomas Munro <thomas.munro@enterprisedb.com>
To: Daniel Gustafsson <daniel@yesql.se>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2018-11-06T08:19:12Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Add a --socketdir option to pg_upgrade.

On Wed, Oct 10, 2018 at 9:27 AM Daniel Gustafsson <daniel@yesql.se> wrote:
> > On 9 Oct 2018, at 16:22, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> > Daniel Gustafsson <daniel@yesql.se> writes:
> >> Having hit the maximum socketdir length error a number of times in pg_upgrade,
> >> especially when running tests in a deep directory hierarchy, I figured it was
> >> time to see if anyone else has had the same problem?  The attached patch is
> >> what I run with locally to avoid the issue, it adds a --socketdir=PATH option
> >> to pg_upgrade which overrides the default use of CWD.  Is that something that
> >> could be considered?
> >
> > I think you could simplify matters if you installed the CWD default value
> > during option processing.
>
> The attached v2 tries to make the socketdir more like the other configurable
> directories in pg_upgrade (adding an envvar for it etc).  Is that more in line
> with what you were suggesting?  make -C src/bin/pg_upgrade check passes with
> this, both unmodified and with a -s in the test script to override it.  Also
> fixed incorrect syntax in the docs part from v1.

I think PGSOCKETDIR should be mentioned in the documentation like the
other environment variables, and also I'm wondering if it actually
works: you set it to the current working directory first, then parse
the command line option if present, and then read the env var only if
not already set: but it's always going to be, isn't it?  Perhaps you
should use getcwd() only if all else fails?

-- 
Thomas Munro
http://www.enterprisedb.com