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

anirudh.goel at cern.ch anirudh.goel at cern.ch
Fri Feb 11 01:20:03 JST 2022


Dear Tatsuo

I am using the built RPMs from https://www.pgpool.net/yum/rpms/4.2/. If my understanding is correct, these latest fixes won’t be available here as a RPM until a new version is released. So, I was just asking if you have a timeline for that.

Thank you

Anirudh
On 10 Feb 2022, 3:02 AM +0100, Tatsuo Ishii <ishii at sraoss.co.jp>, wrote:
> > 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?
>
> You are using debian/Ubuntu package for Pgpool-II? Unfortunately I am
> not in charge of creating/releasing them and I cannot answer the
> question.
>
> > 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/20220210/cf7242bd/attachment.htm>


More information about the pgpool-hackers mailing list