From abd37fd278372e4fb7c5f4c88c214d29728acf66 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Wed, 26 Aug 2015 07:54:01 -0700 Subject: [PATCH] Make run_tests.py robust against port_server not starting --- tools/run_tests/run_tests.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index beb8805ff91..ba0c8e4141b 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -536,7 +536,8 @@ def _start_port_server(port_server_port): # if not running ==> start a new one # otherwise, leave it up try: - version = urllib2.urlopen('http://localhost:%d/version' % port_server_port).read() + version = urllib2.urlopen('http://localhost:%d/version' % port_server_port, + timeout=1).read() running = True except Exception: running = False @@ -553,13 +554,21 @@ def _start_port_server(port_server_port): ['python', 'tools/run_tests/port_server.py', '-p', '%d' % port_server_port], stderr=subprocess.STDOUT, stdout=port_log) - # ensure port server is up + # ensure port server is + waits = 0 while True: + if waits > 10: + port_server.kill() + print "port_server failed to start" + sys.exit(1) try: - urllib2.urlopen('http://localhost:%d/get' % port_server_port).read() + urllib2.urlopen('http://localhost:%d/get' % port_server_port, + timeout=1).read() break except urllib2.URLError: + print "waiting for port_server" time.sleep(0.5) + waits += 1 except: port_server.kill() raise