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:47:06 +0000 (17:47 +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 f257aab6afae9a1ed95843ef48013c7998305b81..78f7cdf0f0b3558199cbc50736b09cd43fd3189b 100755 (executable)
@@ -321,13 +321,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