View Issue Details

IDProjectCategoryView StatusLast Update
0000665Pgpool-IIBugpublic2020-12-02 15:09
Reporteromsupport Assigned Topengbo  
PrioritynormalSeverityminorReproducibilityalways
Status feedbackResolutionopen 
Product Version4.1.5 
Summary0000665: pcp_attach_node is looking fro wrong directory
DescriptionEvery time I try to reacttach a failed node with this command,
pcp_attach_node -n 1 -U pgpool -w

I'm now getting
ERROR: connection to socket "/var/run/postgresql/.s.PGSQL.9898" failed with error "No such file or directory"

This is NOT how it used to work. I have it set to the /tmp directory as default in pgpool.conf. Problem is I have never changed this. I have automation setup for over a year to reattach node if the actual backend is healthy but then it stopped working after the last few version updates. The comments say it defaults to /var/run/postgresql for Debian. I'm running Centos 7 so it should be using /tmp as it is declared. It always has. The actual file does show in the /tmp directory but it's looking for it in the wrong place. I shouldn't have to specify the path in the command like "pcp_attach_node -h /tmp -n 1 -U pgpool -w" when I have it set to the default pcp_socket_dir parameter. I believe something broken.

pcp_socket_dir = '/tmp'
                                   # Unix domain socket path for pcp
                                   # The Debian package defaults to
                                   # /var/run/postgresql
                                   # (change requires restart)
Steps To Reproducetry to reattach node in Centos 7 without specifying the -h parameter.
TagsNo tags attached.

Activities

pengbo

2020-12-01 12:42

developer   ~0003621

It is the normal behavior.
Since 4.1.3, UNIX_DOMAIN_PATH is changed to "/var/run/postgresql". pcp command will check /var/run/postgresql by default.
If you have specified pcp_socket_dir = '/tmp', you need to specify the path using "-h" option explicitly.

[Release note]
- Change PCP UNIX_DOMAIN_PATH of RPM package to /var/run/postgresql.
https://www.pgpool.net/docs/latest/en/html/release-4-1-3.html

pcp_socket_dir = '/tmp' is the configuration for pgpool server side only and it does not affect the pcp command.

omsupport

2020-12-01 12:56

reporter   ~0003622

Well the problem is the pgpool.conf has /tmp by default. As I said I never changed the location. The location of the .s.PGSQL.9898 file still shows in /tmp.
So why would we think to look in /var/run/postgresql or use ? How was "Change PCP UNIX_DOMAIN_PATH of RPM package to /var/run/postgresql. (Bo Peng)" a bug?
That seems like more of a change. Does the pgpool.conf file have updated path on new installs?

pengbo

2020-12-02 15:08

developer   ~0003631

> Well the problem is the pgpool.conf has /tmp by default. As I said I never changed the location. The location of the .s.PGSQL.9898 file still shows in /tmp.
> So why would we think to look in /var/run/postgresql or use ? How was "Change PCP UNIX_DOMAIN_PATH of RPM package to /var/run/postgresql. (Bo Peng)" a bug?
> That seems like more of a change. Does the pgpool.conf file have updated path on new installs?

Because the pgpool.conf installed from RPM package has the default value pcp_socket_dir = '/var/run/postgresql',
we changed PCP UNIX_DOMAIN_PATH in RPM packages only.

    pcp_socket_dir = '/var/run/postgresql'

If you are installing from source code, pgpool will not be affected by this change.

Issue History

Date Modified Username Field Change
2020-12-01 10:27 omsupport New Issue
2020-12-01 12:42 pengbo Note Added: 0003621
2020-12-01 12:42 pengbo Assigned To => pengbo
2020-12-01 12:42 pengbo Status new => feedback
2020-12-01 12:56 omsupport Note Added: 0003622
2020-12-01 12:56 omsupport Status feedback => assigned
2020-12-02 15:08 pengbo Note Added: 0003631
2020-12-02 15:09 pengbo Status assigned => feedback