Fix pgpool_setup to do nothing when no new main node is available.
authorTatsuo Ishii <ishii@sraoss.co.jp>
Wed, 25 Aug 2021 00:52:39 +0000 (09:52 +0900)
committerTatsuo Ishii <ishii@sraoss.co.jp>
Wed, 25 Aug 2021 00:56:42 +0000 (09:56 +0900)
When no new main node is available due to there's only 1 node
remaining, pgpool_setup tried to promote a node with node id -1.  This
is impossible. Fix is just skipping whole failover process if new main
node id is -1.

src/test/pgpool_setup.in

index 76ea072aa07d2c07aeabac15fbf01d3e3d3527ae..c1a9e703f7ab9c1c2708ed99bcf3bc274e3fa6ec 100644 (file)
@@ -192,6 +192,12 @@ PGPOOL_BIN=__PGPOOL_INSTALL_DIR__/bin
 date >> $log
 echo "failed_node_id $failed_node_id failed_host_name $failed_host_name failed_port $failed_port failed_db_cluster $failed_db_cluster new_main_id $new_main_id old_main_id $old_main_id new_main_host_name $new_main_host_name old_primary_node_id $old_primary_node_id new_main_port_number $new_main_port_number new_main_db_cluster $new_main_db_cluster" >> $log
 
+# check if all node is down
+if [ $new_main_id = "-1" ];then
+    echo "no new main node is available" >>$log
+    exit 0
+fi
+
 if [ a"$failed_node_id" = a"$old_primary_node_id" ];then       # main node failed
 !      new_primary_db_cluster=${mydir}/data"$new_main_id"
        echo $pg_ctl -D $new_primary_db_cluster promote >>$log  # let standby take over