diff options
author | Nobuaki Sukegawa <nsuke@apache.org> | 2016-02-28 10:07:30 +0900 |
---|---|---|
committer | Nobuaki Sukegawa <nsuke@apache.org> | 2016-02-28 12:03:40 +0900 |
commit | 103974ec550e7d1c5c75e35f1309095487b5b4e1 (patch) | |
tree | ee714807dc57f6c04f45b40350771b5368ebc1dc /test/crossrunner | |
parent | 2655f4b5365c0a471531c45aed7a99da358b787e (diff) | |
download | thrift-103974ec550e7d1c5c75e35f1309095487b5b4e1.tar.gz |
THRIFT-3688 Fix socket bind failure detection of cross test
Client: Test
Patch: Nobuaki Sukegawa
This closes #905
Diffstat (limited to 'test/crossrunner')
-rw-r--r-- | test/crossrunner/run.py | 45 |
1 files changed, 23 insertions, 22 deletions
diff --git a/test/crossrunner/run.py b/test/crossrunner/run.py index 2c212e0f4..3f9aaa4f4 100644 --- a/test/crossrunner/run.py +++ b/test/crossrunner/run.py @@ -172,29 +172,30 @@ def run_test(testdir, logdir, test_dict, max_retry, async=True): with sv.start(): if test.socket in ('domain', 'abstract'): time.sleep(0.1) + port_ok = True else: - if not ensure_socket_open(sv.proc, port, test.delay): - break - connect_retry_count = 0 - max_connect_retry = 3 - connect_retry_wait = 0.5 - while True: - if sv.proc.poll() is not None: - logger.info('not starting client because server process is absent') - break - logger.debug('Starting client') - cl.start(test.timeout) - logger.debug('Waiting client') - cl.wait() - if not cl.report.maybe_false_positive() or connect_retry_count >= max_connect_retry: - if connect_retry_count > 0 and connect_retry_count < max_connect_retry: - logger.warn('[%s]: Connected after %d retry (%.2f sec each)' % (test.server.name, connect_retry_count, connect_retry_wait)) - # Wait for 50ms to see if server does not die at the end. - time.sleep(0.05) - break - logger.debug('Server may not be ready, waiting %.2f second...' % connect_retry_wait) - time.sleep(connect_retry_wait) - connect_retry_count += 1 + port_ok = ensure_socket_open(sv.proc, port, test.delay) + if port_ok: + connect_retry_count = 0 + max_connect_retry = 3 + connect_retry_wait = 0.5 + while True: + if sv.proc.poll() is not None: + logger.info('not starting client because server process is absent') + break + logger.debug('Starting client') + cl.start(test.timeout) + logger.debug('Waiting client') + cl.wait() + if not cl.report.maybe_false_positive() or connect_retry_count >= max_connect_retry: + if connect_retry_count > 0 and connect_retry_count < max_connect_retry: + logger.warn('[%s]: Connected after %d retry (%.2f sec each)' % (test.server.name, connect_retry_count, connect_retry_wait)) + # Wait for 50ms to see if server does not die at the end. + time.sleep(0.05) + break + logger.debug('Server may not be ready, waiting %.2f second...' % connect_retry_wait) + time.sleep(connect_retry_wait) + connect_retry_count += 1 if sv.report.maybe_false_positive() and bind_retry_count < max_bind_retry: logger.warn('[%s]: Detected socket bind failure, retrying...', test.server.name) |