[Title] Modified to retry connecting server 3 times when downloading files
authordonghee yang <donghee.yang@samsung.com>
Tue, 4 Jun 2013 10:35:44 +0000 (19:35 +0900)
committerdonghee yang <donghee.yang@samsung.com>
Tue, 4 Jun 2013 10:35:44 +0000 (19:35 +0900)
src/build_server/receive_file.rb
src/build_server/send_file.rb
src/common/BuildComm.rb

index 816be5335df1019f6b3ea24a2427e732e002d312..327c507ece7806336f5beddeac337206762828b3 100755 (executable)
@@ -54,15 +54,16 @@ else
 end
 
 begin
+       result = false
+
        # create client
        client = BuildCommClient.create( addr, port, log )
        if client.nil? then
                log.error( "Creating communication client failed!", Log::LV_USER)
-               return false
+               exit(1)
        end
 
        # download file
-       result = true
        file_name = file_path.split("/")[-1]
        msg = "DOWNLOAD|#{dock}|#{file_name}"
        if client.send( msg ) then
index b52fc8c0f636fbcf8c2566b00c66305a8257ff26..496164dc708b072a1e31c4d21f1d3534d57973da 100755 (executable)
@@ -54,11 +54,13 @@ else
 end
 
 begin
+       result = false
+
        # create client
        client = BuildCommClient.create( addr, port, log )
        if client.nil? then
                log.error( "Creating communication client failed!", Log::LV_USER)
-               return false
+               exit(1)
        end
 
        # upload file
index cc6a328bf4e9e7703cde2daeb0fcef87dc3fff41..fab444ff566c65b5c489f6b0f1d5e49988e77576 100644 (file)
@@ -346,19 +346,24 @@ class BuildCommClient
 
        # create
        # if sec 0 or nil then not set timeout. it's timeout spec
-       def self.create(ip, port, log = nil, sec = 5)
-               # open socket
-               socket = nil
-               begin
-                       timeout(sec) do
-                               socket = TCPSocket.open( ip, port )
+       def self.create(ip, port, log = nil, sec = 10, retries = 3)                                     
+               # open socket                                                                               
+               socket = nil                                                                                
+               for i in 1..retries
+                       begin
+                               timeout(sec) do
+                                       socket = TCPSocket.open( ip, port )
+                               end
+                       rescue Timeout::Error
+                               log.warn("Connection Timed Out!") if not log.nil?
+                               socket = nil
+                       rescue => e # unknown exception
+                               log.warn("TCPSocket Error: #{e.message}") if not log.nil?
+                               socket = nil
                        end
-               rescue Timeout::Error
-                       return nil
-               rescue
-                       # unknown exception
-                       return nil
-               end
+                       if not socket.nil? then break end
+                       log.warn("Retrying...") if not log.nil? and i < retries
+        end                                                                                         
 
                # refused
                if socket.nil? then