[pgpool-general: 2615] Re: online recovery problem (pgpool_remote_start never ends)

Attila Heidrich attila.heidrich at gmail.com
Tue Mar 11 00:23:28 JST 2014


Thanks the sample!

I have tried "-t" and "-T" also for ssh, but none helped.
Also I have tried your recommendation without the trailing "&", and it did
not work either, so the main difference is this, and not the ssh
parameters, or the redirections.

So thanks a lot, it works now!
regards,

Attila

p.s.
My current script is:
---------------------------------
#!/bin/sh
/usr/bin/logger Called "$0" "$*"

DEST=$1
DESTDIR=$2
PGCTL="/usr/lib/postgresql/9.3/bin/pg_ctl"
COMMAND="ssh -T postgres@$DEST $PGCTL -w -D $DESTDIR start 2>/dev/null
1>/dev/null </dev/null &"

/usr/bin/logger -- Trying "$COMMAND"

eval $COMMAND

/usr/bin/logger -- Leaving "$0"
---------------------------------


2014-03-10 14:53 GMT+01:00 Tatsuo Ishii <ishii at postgresql.org>:

> You specify "ssh -t" which forces to allocate tty. Also you do not
> detach stdin, stderr and stdout which cause the script to wait for
> something from stdin forever.
>
> Here is the pgpool_remote_start I'm using.
>
> -------------------------------------------------------------------------------
> #! /bin/sh
> #
> # start postmaster on the recovered node
> #
> if [ $# -ne 2 ]
> then
>     echo "pgpool_remote_start remote_host remote_datadir"
>     exit 1
> fi
>
> DEST=$1
> DESTDIR=$2
> PGCTL=/usr/local/pgsql/bin/pg_ctl
>
> ssh -T $DEST $PGCTL -w -D $DESTDIR start 2>/dev/null 1>/dev/null <
> /dev/null &
>
> -------------------------------------------------------------------------------
>
> Best regards,
> --
> Tatsuo Ishii
> SRA OSS, Inc. Japan
> English: http://www.sraoss.co.jp/index_en.php
> Japanese: http://www.sraoss.co.jp
>
> > Dear Guys,
> >
> > I have got a problem...
> >
> > I started to use pgpool2 3.3 with postgresql 9.3 on Debian 7.3, using the
> > pgpool/postgresql repositories.
> >
> > I have setup a cluster of two pgpool2 nodes and three backend databases.
> It
> > works in a way after setup, but when I started to test the steps that
> > should be done for recovery/adding a node, I have ran into the following
> > problem:
> >
> > When pgpool starts the pgpool_remote_start script, it never returns.
> After
> > the end of the scripts, pcp_recovery_node waits until the end of time.
> >
> > Running the script by hand always work.
> >
> > postgres at pool-1:~$ /usr/sbin/pcp_recovery_node -d 0 localhost 9898
> postgres
> > DifficultPassword 2
> > DEBUG: send: tos="R", len=46
> > DEBUG: recv: tos="r", len=21, data=AuthenticationOK
> > DEBUG: send: tos="D", len=6
> >
> > ... and just waits forever...
> >
> > Meanwhile the remote postgresql DB is up and running:
> >
> > postgres at pool-3:~$ /usr/lib/postgresql/9.3/bin/pg_ctl -w -D
> > /var/lib/postgresql/9.3/main/ status
> > pg_ctl: server is running (PID: 8780)
> >
> >
> > The pgpool_remote_start script is:
> > postgres at pool-1:~$ /var/lib/postgresql/pgpool_remote_start pool-3
> > /var/lib/postgresql/9.3/main/
> > waiting for server to start....2014-03-03 14:33:50 CET LOG:  database
> > system was shut down at 2014-03-03 14:33:42 CET
> > 2014-03-03 14:33:50 CET LOG:  database system is ready to accept
> connections
> > 2014-03-03 14:33:50 CET LOG:  autovacuum launcher started
> >  done
> > server started
> > 2014-03-03 14:33:51 CET LOG:  received SIGHUP, reloading configuration
> files
> > Connection to pool-3 closed.
> > postgres at pool-1:~$
> >
> > Here is the script text:
> > ----------------------
> > #!/bin/sh
> >
> > /usr/bin/logger Called "$0" "$*"
> >
> > DEST=$1
> > DESTDIR=$2
> > PGCTL="/usr/lib/postgresql/9.3/bin/pg_ctl"
> >
> > COMMAND="ssh -t postgres@$DEST '$PGCTL -w -D $DESTDIR start'"
> > /usr/bin/logger -- Trying "$COMMAND"
> > eval $COMMAND
> > ----------------------
> > Attila
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.sraoss.jp/pipermail/pgpool-general/attachments/20140310/df67402e/attachment.html>


More information about the pgpool-general mailing list