Merge "Delay port binding to reduce wait at process start"

This commit is contained in:
Jenkins 2017-06-29 16:39:57 +00:00 committed by Gerrit Code Review
commit 537f9a3f64
2 changed files with 10 additions and 7 deletions

View File

@ -892,12 +892,6 @@ def run_wsgi(conf_path, app_section, *args, **kwargs):
else:
strategy = WorkersStrategy(conf, logger)
error_msg = strategy.bind_ports()
if error_msg:
logger.error(error_msg)
print(error_msg)
return 1
# Ensure the configuration and application can be loaded before proceeding.
global_conf = {'log_name': log_name}
if 'global_conf_callback' in kwargs:
@ -911,6 +905,13 @@ def run_wsgi(conf_path, app_section, *args, **kwargs):
# redirect errors to logger and close stdio
capture_stdio(logger)
# Start listening on bind_addr/port
error_msg = strategy.bind_ports()
if error_msg:
logger.error(error_msg)
print(error_msg)
return 1
no_fork_sock = strategy.no_fork_sock()
if no_fork_sock:
run_server(conf, logger, no_fork_sock, global_conf=global_conf)

View File

@ -730,7 +730,9 @@ class TestWSGI(unittest.TestCase):
logger,
'log_name',
]
with mock.patch.object(wsgi, '_initrp', return_value=stub__initrp):
with mock.patch.object(wsgi, '_initrp', return_value=stub__initrp), \
mock.patch.object(wsgi, 'loadapp'), \
mock.patch.object(wsgi, 'capture_stdio'):
for server_type in ('account-server', 'container-server',
'object-server'):
mock_per_port.reset_mock()