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