]> git.8kb.co.uk Git - slony-i/pgbouncer_follower/blobdiff - pgbouncer_follower.pl
Write correct boolean value for exceede lag, rather than just the lag in seconds.
[slony-i/pgbouncer_follower] / pgbouncer_follower.pl
index 23eabcd068cab5b2301bbc4529bc6f4f67ced748..8677071634ed6fa2531161fab4aa8d1d13e69dde 100755 (executable)
@@ -145,7 +145,12 @@ sub doAll {
         }
         elsif($g_best_config) {
             if ($g_debug) {
-                printLogLn($g_logfile, "DEBUG: Found current origin to read config from");
+                if ($g_method eq 'slony') {
+                    printLogLn($g_logfile, "DEBUG: Found current origin to read config from");
+                }
+                elsif ($g_method eq 'wal') {
+                    printLogLn($g_logfile, "DEBUG: Read config from all contactable nodes");
+                }
             }
             last;
         } 
@@ -544,10 +549,17 @@ sub loadBinCluster {
     }
     # Do the post processing we mentioned above, once we know xlog locations differ
     # then we can say the apply lag is correct, else it's just there has been no
-    # activity on the master. 
+    # activity on the master. In the case the xlog locations differ but apply_lag 
+    # is 0 then it means no WAL has been applied since srver start; we don't know
+    # a time for lag in this case.
     else {
         foreach (@tmp_cluster) {
-            $apply_lag = ((@$_[12] > 0 && @$_[11] != $primary_location) ? @$_[12] : 0);
+            $apply_lag = false;
+            if ($g_max_lag > 0) {
+                if ((@$_[11] ne $primary_location) && (@$_[12] > $g_max_lag || @$_[12] == 0)) {
+                   $apply_lag  = true;
+                }
+            }
             my @node=(@$_[0],@$_[1],@$_[2],@$_[3],@$_[4],@$_[5],@$_[6],@$_[7],@$_[8],@$_[9],@$_[10],$apply_lag);
             push(@cluster,  \@node);
         }