From eb45031e17345422a404c29d3f5ee7394e017c2a Mon Sep 17 00:00:00 2001
From: Eugine Blikh <bigbes@gmail.com>
Date: Wed, 19 Feb 2014 20:26:27 +0400
Subject: [PATCH] Fix for timeout while waiting for start of TarantoolServer

---
 test/lib/tarantool_server.py | 23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/test/lib/tarantool_server.py b/test/lib/tarantool_server.py
index 2a00e6ac26..2517de932a 100644
--- a/test/lib/tarantool_server.py
+++ b/test/lib/tarantool_server.py
@@ -4,18 +4,20 @@ import sys
 import glob
 import time
 import yaml
+import errno
 import shlex
 import daemon
 import random
 import shutil
-import difflib
 import signal
 import socket
+import difflib
 import filecmp
 import traceback
 import subprocess
 import collections
 
+
 try:
     from cStringIO import StringIO
 except ImportError:
@@ -639,14 +641,19 @@ class TarantoolServer(Server):
         """
 
         self.logfile_pos.seek_from('entering the event loop\n', self.process if not self.gdb else None)
-
         while True:
-            temp = AdminConnection('localhost', self.conf['admin_port'])
-            ans = yaml.load(temp.execute('box.info.status'))[0]
-            if ans in ('primary', 'hot_standby', 'orphan') or ans.startswith('replica'):
-                return True
-            else:
-                raise Exception("Strange output for `box.info.status`: %s" % (ans))
+            try:
+                temp = AdminConnection('localhost', self.conf['admin_port'])
+                ans = yaml.load(temp.execute('box.info.status'))[0]
+                if ans in ('primary', 'hot_standby', 'orphan') or ans.startswith('replica'):
+                    return True
+                else:
+                    raise Exception("Strange output for `box.info.status`: %s" % (ans))
+            except socket.error as e:
+                if e.errno == errno.ECONNREFUSED:
+                    time.sleep(0.1)
+                    continue
+                raise
 
     def wait_until_stopped(self, pid):
         while True:
-- 
GitLab