diff --git a/swift/common/wsgi.py b/swift/common/wsgi.py index c3ac7c4f..3b6bb795 100644 --- a/swift/common/wsgi.py +++ b/swift/common/wsgi.py @@ -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) diff --git a/test/unit/common/test_wsgi.py b/test/unit/common/test_wsgi.py index c3ec3f00..f292012a 100644 --- a/test/unit/common/test_wsgi.py +++ b/test/unit/common/test_wsgi.py @@ -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()