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 01:12:54 +0000 (10:12 +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 fba5abe8d70a91b0c40ed12f95ff59e55d678dbe..a7dd0bb5de472f323f9daa2df5bbbfd3a6f8f7b6 100755 (executable)
@@ -179,6 +179,12 @@ cluster1=$mydir/data1
 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_master_id $new_master_id old_master_id $old_master_id new_master_host_name $new_master_host_name old_primary_node_id $old_primary_node_id new_master_port_number $new_master_port_number new_master_db_cluster $new_master_db_cluster" >> $log
 
+# check if all node is down
+if [ $new_master_id = "-1" ];then
+    echo "no new master node is available" >>$log
+    exit 0
+fi
+
 if [ a"$failed_node_id" = a"$old_primary_node_id" ];then       # master failed
 !      new_primary_db_cluster=${mydir}/data"$new_master_id"
        echo $pg_ctl -D $new_primary_db_cluster promote >>$log  # let standby take over