View Issue Details

IDProjectCategoryView StatusLast Update
0000578Pgpool-IIBugpublic2020-01-28 15:06
ReportergiminniAssigned Topengbo 
PrioritynormalSeveritymajorReproducibilityalways
Status feedbackResolutionopen 
PlatformLinuxOSAlpine LinuxOS Version3.11.3
Product Version4.1.0 
Target VersionFixed in Version 
Summary0000578: 4.1: Cannot get standby online after a pcp_promote_node, instead getting "... failed to start in 90 second"
DescriptionHere the log output
...
- PCP: processing promote node
- promoting Node ID 1
- received promote backend request for node_id: 1 from pid [3888]
- starting to select new master node
- starting promotion. promote host /var/run/pgpool(11003)
- starting follow degeneration. shutdown host /var/run/pgpool(11002)
- starting follow degeneration. shutdown host /var/run/pgpool(11004)
- failover: 2 follow backends have been degenerated
- failover: set new primary node: 1
- failover: set new master node: 1
- promotion done. promoted host /var/run/pgpool(11003)
- start triggering follow command.
- execute command: /opt/pgpool/etc/follow_master.sh 0 /var/run/pgpool 11002 /opt/pgpool/data0 1 0 /var/run/pgpool 0 11003 /opt/pgpool/data1
- initializing backend status
- start online recovery
- starting recovering node 0
- starting recovery command: "SELECT pgpool_recovery('basebackup.sh', 'localhost', '/opt/pgpool/data0', '11003', 0, '11002')- executing recovery
- executing recovery, start recovery
- executing recovery, finish recovery
- node recovery, 1st stage is done
- executing remote start
- finish pgpool_remote_start
- checking if postmaster is started
....
Steps To Reproduce1) Execute pgpool_setup -m s -s -n 3 -r -d
2) Change pcppass to "*:11001:postgres:postgres"
3) Copy pcpass to $HOME/.pcppass
4) Chmod 600 $HOME/.pcppass
5) Added "host all all * trust" to pool_hba.conf

5) Execute startall

pgpool port is 11000
pcp port is 11001
0000001 port is 11002
0000002 port is 11003
0000003 port is 11004

6) Execute pcp_promote_node -h 0.0.0.0 -p 11001 -n 1 -w
Additional InformationARCH: arm64
ORIGIN: docker.io/alpine
CONTAINER: Rootless podman container with podman run -ti --name alps --net=host alpine
DIR: /opt/pgpool
SOCKET: /var/run/pgpool
DB: Postgres V12
MODE: Streaming replication with replication slot
CONFIG: See attachment

*) Due to missing alpine linux, I added the pgpool extension manually
Tagsfailover, streaming replication

Activities

giminni

2020-01-27 22:45

reporter  

pgpool.conf.tgz (1,070 bytes)

pengbo

2020-01-28 15:05

developer   ~0003093

It is an expected behaviour.

https://www.pgpool.net/docs/latest/en/html/pcp-promote-node.html

| Please note that this command does not actually promote standby PostgreSQL backend:
| it just changes the internal status of Pgpool-II and trigger failover and users have to promote standby PostgreSQL outside Pgpool-II.

If you want to promote any standby node, please stop primary node first,
then pgpool will promote any standby automatically.
To recover the old primary as standby, please run "pcp_recovery_node".

Here is a setup example:
https://www.pgpool.net/docs/latest/en/html/example-cluster.html

Issue History

Date Modified Username Field Change
2020-01-27 22:45 giminni New Issue
2020-01-27 22:45 giminni File Added: pgpool.conf.tgz
2020-01-27 22:45 giminni Tag Attached: failover
2020-01-27 22:45 giminni Tag Attached: streaming replication
2020-01-28 14:46 pengbo Assigned To => pengbo
2020-01-28 14:46 pengbo Status new => assigned
2020-01-28 14:46 pengbo Description Updated View Revisions
2020-01-28 14:46 pengbo Steps to Reproduce Updated View Revisions
2020-01-28 14:46 pengbo Additional Information Updated View Revisions
2020-01-28 15:05 pengbo Note Added: 0003093
2020-01-28 15:06 pengbo Status assigned => feedback