Standbys using commas in application_name cannot become sync nodes

From: Michael Paquier <michael(dot)paquier(at)gmail(dot)com>
To: PostgreSQL mailing lists <pgsql-bugs(at)postgresql(dot)org>
Subject: Standbys using commas in application_name cannot become sync nodes
Date: 2016-02-14 12:36:04
Message-ID: CAB7nPqT4BHszhuapjOJ699AbQZm2mku0UsK+ari11YyzJDwgVw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Hi all,

Commas are authorized characters in application_name for a node in
recovery, however this overlaps with the fact that
synchronous_standby_names uses commas as a separator for each node
name. So, if a standby node uses a comma in its name, even if its name
is set in s_s_names it can never become a synchronous node because
SplitIdentifierString() splits this parameter with only a comma.

Even if I have never seen an standby using a comma in its
application_name, this is a bug, and here are a couple of things that
we could do regarding it:
1) Do not care, who is actually going to use a comma in application_name?!
2) Forbid the use of commas in application_name
3) Enhaunce a bit s_s_names splitting so as it can consider
backslash+comma as part of a standby name. In short by setting
s_s_names = 'foo\,bar', a standby with name 'foo,bar' would be a sync
node.
4) Document the limitation and discourage the use of commas in application_name

Thoughts?
--
Michael

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2016-02-14 15:51:01 Re: Standbys using commas in application_name cannot become sync nodes
Previous Message jsosic 2016-02-13 22:53:37 BUG #13959: Missing tmpfile exclude conf for socket