From: donghee yang Date: Tue, 4 Jun 2013 10:35:44 +0000 (+0900) Subject: [Title] Modified to retry connecting server 3 times when downloading files X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e5dfff4634db61490ee9c67be663dd1a4cab2dec;p=sdk%2Ftools%2Fsdk-build.git [Title] Modified to retry connecting server 3 times when downloading files --- diff --git a/src/build_server/receive_file.rb b/src/build_server/receive_file.rb index 816be53..327c507 100755 --- a/src/build_server/receive_file.rb +++ b/src/build_server/receive_file.rb @@ -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 diff --git a/src/build_server/send_file.rb b/src/build_server/send_file.rb index b52fc8c..496164d 100755 --- a/src/build_server/send_file.rb +++ b/src/build_server/send_file.rb @@ -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 diff --git a/src/common/BuildComm.rb b/src/common/BuildComm.rb index cc6a328..fab444f 100644 --- a/src/common/BuildComm.rb +++ b/src/common/BuildComm.rb @@ -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