Enhance watchdog_setup script.
authorTatsuo Ishii <ishii@sraoss.co.jp>
Sat, 29 May 2021 08:32:38 +0000 (17:32 +0900)
committerTatsuo Ishii <ishii@sraoss.co.jp>
Sat, 29 May 2021 08:45:02 +0000 (17:45 +0900)
shutdownall script generated by watchdog_setup shutdowns in the node
number order i.e.: 0, 1, 2...  This causes PostgreSQL backend shutdown
when pgpool0 node went down and node 1, 2... trigger failover event,
which is not necessary in the whole shutdown sequence.  Shutting down
in the reverse order (...2, 1, 0) should prevent this and shorten the
whole shutdown sequence.

Also this should prevent occasional 018.detach_primary and
028.watchdog_enable_consensus_with_half_votes test timeout (they use
watchdog_setup).

src/test/watchdog_setup.in

index 3c697da1118e0029060a21a87d018427bb6d8bac..966205d66d6d7aef1458e7d252df9c7067ad2d58 100644 (file)
@@ -327,13 +327,21 @@ do
     echo "cd pgpool$cnt" >> $STARTALL
     echo "./startall" >> $STARTALL
     echo "cd .." >> $STARTALL
-    echo "cd pgpool$cnt" >> $SHUTDOWNALL
-    echo "./shutdownall" >> $SHUTDOWNALL
-    echo "cd .." >> $SHUTDOWNALL
 
     cd ..
     cnt=`expr $cnt + 1`
 done
 
+# shutdown needs to be performed in reverse order because shutdown of
+# PostgreSQL servers must be executed in pgpoo0.
+cnt=$W_NUM_PGPOOL
+while [ $cnt -gt 0 ]
+do
+    cnt=`expr $cnt - 1`
+    echo "cd pgpool$cnt" >> $SHUTDOWNALL
+    echo "./shutdownall" >> $SHUTDOWNALL
+    echo "cd .." >> $SHUTDOWNALL
+done
+
 chmod 755 $STARTALL
 chmod 755 $SHUTDOWNALL