BUG #16604: pg_dump with --jobs breaks SSL connections

The Post Office <noreply@postgresql.org>

From: PG Bug reporting form <noreply@postgresql.org>
To: pgsql-bugs@lists.postgresql.org
Cc: zsolt.ero@gmail.com
Date: 2020-09-01T20:08:24Z
Lists: pgsql-bugs
The following bug has been logged on the website:

Bug reference:      16604
Logged by:          Zsolt Ero
Email address:      zsolt.ero@gmail.com
PostgreSQL version: 12.4
Operating system:   Ubuntu 20.04
Description:        

I'm using pg_dump in the following syntax:

pg_dump --dbname="sslmode=verify-ca sslrootcert=server-ca.pem \
      sslcert=client-cert.pem sslkey=client-key.pem \
      hostaddr=1.2.3.4 \
      user=postgres dbname=app" \
      --format=directory \
      --file=dump_app \
      --jobs=3

As long as the --jobs parameter is present, the process breaks after
"pg_dump: saving database definition". 
It breaks with "FATAL:  connection requires a valid client certificate".

Without --jobs it completes without errors. I also think it's happening with
pg_restore as well.

Client is postgresql-client-12 under Ubuntu 20.04 from latest official
packages (http://apt.postgresql.org/pub/repos/apt).

Commits

  1. Fix connection string handling in psql's \connect command.

  2. Fix connection string handling in src/bin/scripts/ programs.

  3. Fix handling of -d "connection string" in pg_dump/pg_restore.