[Ovirt-devel] [PATCH server] Keep trying to get DNS SRV records in taskomatic and dbomatic.

Ian Main imain at redhat.com
Thu Mar 5 20:43:42 UTC 2009


The last patch made it so we only try 4 times to get the DNS SRV records
before giving up in *omatic.  This patch makes them retry indefinitely.

Signed-off-by: Ian Main <imain at redhat.com>
---
 src/db-omatic/db_omatic.rb    |   10 +++++-----
 src/task-omatic/taskomatic.rb |    8 +++++---
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/src/db-omatic/db_omatic.rb b/src/db-omatic/db_omatic.rb
index 678b1cb..8e62f54 100755
--- a/src/db-omatic/db_omatic.rb
+++ b/src/db-omatic/db_omatic.rb
@@ -78,15 +78,15 @@ class DbOmatic < Qpid::Qmf::Console
         database_connect
 
         server, port = nil
-        (1..4).each do
+        sleepy = 5
+        while true do
             server, port = get_srv('qpidd', 'tcp')
             break if server
-            @logger.error "Unable to determine qpid server from DNS SRV record" if not server
-            sleep(10)
+            @logger.error "Unable to determine qpid server from DNS SRV record, retrying.." if not server
+            sleep(sleepy)
+            sleepy *= 2 if sleepy < 120
         end
 
-        raise "Unable to determine server and port from DNS SRV records" if not server
-
         @logger.info "Connecting to amqp://#{server}:#{port}"
         @session = Qpid::Qmf::Session.new(:console => self, :manage_connections => true)
         @broker = @session.add_broker("amqp://#{server}:#{port}", :mechanism => 'GSSAPI')
diff --git a/src/task-omatic/taskomatic.rb b/src/task-omatic/taskomatic.rb
index eb8e2ae..67c1369 100755
--- a/src/task-omatic/taskomatic.rb
+++ b/src/task-omatic/taskomatic.rb
@@ -98,11 +98,13 @@ class TaskOmatic
     ensure_credentials
 
     server, port = nil
-    (1..4).each do
+    sleepy = 5
+    while true do
       server, port = get_srv('qpidd', 'tcp')
       break if server
-      @logger.error "Unable to determine qpid server from DNS SRV record" if not server
-      sleep(10)
+      @logger.error "Unable to determine qpid server from DNS SRV record, retrying.." if not server
+      sleep(sleepy)
+      sleepy *= 2 if sleepy < 120
     end
 
     @session = Qpid::Qmf::Session.new(:manage_connections => true)
-- 
1.6.0.6




More information about the ovirt-devel mailing list