Merge "Move pool dispose() before os.fork"

This commit is contained in:
Jenkins 2015-06-02 08:17:55 +00:00 committed by Gerrit Code Review
commit e7c37589c2
2 changed files with 8 additions and 8 deletions

View File

@ -117,10 +117,6 @@ class RpcWorker(object):
self._servers = []
def start(self):
# We may have just forked from parent process. A quick disposal of the
# existing sql connections avoids producing errors later when they are
# discovered to be broken.
session.dispose()
self._servers = self._plugin.start_rpc_listeners()
def wait(self):
@ -157,6 +153,10 @@ def serve_rpc():
rpc.start()
return rpc
else:
# dispose the whole pool before os.fork, otherwise there will
# be shared DB connections in child processes which may cause
# DB errors.
session.dispose()
launcher = common_service.ProcessLauncher(wait_interval=1.0)
launcher.launch_service(rpc, workers=cfg.CONF.rpc_workers)
return launcher

View File

@ -98,10 +98,6 @@ class WorkerService(object):
self._server = None
def start(self):
# We may have just forked from parent process. A quick disposal of the
# existing sql connections avoids producing 500 errors later when they
# are discovered to be broken.
api.dispose()
if CONF.use_ssl:
self._service._socket = self._service.wrap_ssl(
self._service._socket)
@ -234,6 +230,10 @@ class Server(object):
service.start()
systemd.notify_once()
else:
# dispose the whole pool before os.fork, otherwise there will
# be shared DB connections in child processes which may cause
# DB errors.
api.dispose()
# The API service runs in a number of child processes.
# Minimize the cost of checking for child exit by extending the
# wait interval past the default of 0.01s.