[pgpool-hackers: 4122] Re: Failover on starting up

anirudh.goel at cern.ch anirudh.goel at cern.ch
Thu Feb 10 00:22:35 JST 2022


Hello Tatsuo

Thank you so much for such prompt fixes.

Since I am actually running the packaged version (4.2.2) of pgpool in my setup, I would like to know if you already have a timeline for releasing these new updates in a new packaged version?

That way I can wait for some time and upgrade to the latest packaged version instead of building from source.

Thank you

Anirudh
On 6 Feb 2022, 12:33 PM +0100, Tatsuo Ishii <ishii at sraoss.co.jp>, wrote:
> I have found multiple issues with Pgpool-II in your scenario
> (i.e. primary PostgreSQL is not up when pgpool starts).
>
> 1) I assume your failover.sh is based on the script coming with
> Pgpool-II. The script does not promote standby node if old primary
> node (%P) is -1. You need to fix the script.
>
> Change this line:
>
> if [ $FAILED_NODE_ID -ne $OLD_PRIMARY_NODE_ID ]; then
>
> to:
>
> if [ $OLD_PRIMARY_NODE_ID != "-1" -a $FAILED_NODE_ID -ne $OLD_PRIMARY_NODE_ID ]; then
>
>
> 2) Even if #1 is fixed, Pgpool-II has a bug: after failover.sh gets
> executed (thus one of standby node has been promoted), the new primary
> node is not detected by Pgpool-II.
>
> 3) After failover is done, follow primary command is executed (if
> set). Pgpool-II fails to execute the command in the scenario.
>
> I have already pushed the fix for #2 and #3 for all supported
> branches. For example the commit for 4.3 is here:
>
> https://git.postgresql.org/gitweb/?p=pgpool2.git;a=blobdiff;f=src/main/pgpool_main.c;h=13049e1f9b4520e709ab0cdcea6ed29a8a2faef2;hp=80a25d00f20f9ef0a893e89f1b824fa1fc3db225;hb=5028a50d718944a6a1d19f8fa984b4c30d8f7dae;hpb=8e5e49426aeb89cdf2bd5c18928261ad2311e5b4
>
> > I have looked into pgpool.conf. You need to set other than 0 to
> > search_primary_node_timeout. pgpool will not start up until
> > search_primary_node_timeout is expired.
> >
> > > I have attached both, logs and conf file.
> > > On 6 Feb 2022, 2:46 AM +0100, Tatsuo Ishii <ishii at sraoss.co.jp>, wrote:
> > > > Have you enabled health check?
> > > > Can you share pgpool.conf?
> > > >
> > > > > But that’s the issue - pgpool didn’t perform a failover.
> > > > >
> > > > > It just said this and then gave up:
> > > > > 2022-02-04 16:48:53: pid 9: LOG: ignoring the failover request, since we are still starting up
> > > > > On 6 Feb 2022, 2:32 AM +0100, Tatsuo Ishii <ishii at sraoss.co.jp>, wrote:
> > > > > > But after starting up pgpool will detect that the primary went down by
> > > > > > health check and perform failover anyway, no?
> > > > > >
> > > > > > > Thank you Tatsuo for your reply but can’t pgpool setup the other resources regardless of the primary being up and then perform the failover?
> > > > > > >
> > > > > > > I need this behaviour because I cannot pgpool in cluster mode due to infrastructure limitations.
> > > > > > >
> > > > > > > Cheers
> > > > > > >
> > > > > > > Anirudh
> > > > > > > On 6 Feb 2022, 1:51 AM +0100, Tatsuo Ishii <ishii at sraoss.co.jp>, wrote:
> > > > > > > > > Hello
> > > > > > > > >
> > > > > > > > > I have a setup with 1 pgpool and 2 postgresql primary-replica nodes.
> > > > > > > > >
> > > > > > > > > I am testing a certain scenario - what if the pgpool goes down, then the primary goes down and then the pgpool comes back up.
> > > > > > > > >
> > > > > > > > > I was expecting that pgpool would perform a failover after it comes back up but instead it says this:
> > > > > > > > > 2022-02-04 16:48:53: pid 9: LOG: Pgpool-II parent process has received failover request
> > > > > > > > > 2022-02-04 16:48:53: pid 9: LOG: ignoring the failover request, since we are still starting up
> > > > > > > > >
> > > > > > > > > So my question is, is there a parameter or some way that we can tell pgpool to perform a failover if the primary is down while pgpool is starting up?
> > > > > > > > >
> > > > > > > > > I tried looking at the code but according to https://github.com/pgpool/pgpool2/blob/master/src/main/pgpool_main.c#L1329, I don¢t see a parameter other than processState.
> > > > > > > > >
> > > > > > > > > Is there a logical reason why pgpool cannot/won't perform a failover during startup?
> > > > > > > >
> > > > > > > > Because pgpool needs to setup various resouses including shared memory
> > > > > > > > and others for managing failover.
> > > > > > > >
> > > > > > > > Best reagards,
> > > > > > > > --
> > > > > > > > Tatsuo Ishii
> > > > > > > > SRA OSS, Inc. Japan
> > > > > > > > English: http://www.sraoss.co.jp/index_en.php
> > > > > > > > Japanese:http://www.sraoss.co.jp
> > _______________________________________________
> > pgpool-hackers mailing list
> > pgpool-hackers at pgpool.net
> > http://www.pgpool.net/mailman/listinfo/pgpool-hackers
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.pgpool.net/pipermail/pgpool-hackers/attachments/20220209/a2544879/attachment.htm>


More information about the pgpool-hackers mailing list