Fix for timeouting actions on run-action

Change-Id: I2aaed3c431134312942ab71ea8ad95f9b8529234
Partial-Bug: #1624284
(cherry picked from commit cca13bb3db)
This commit is contained in:
Dawid Deja 2016-09-21 15:09:57 +02:00 committed by Renat Akhmerov
parent 238f39871f
commit 229ea1dbb0
4 changed files with 9 additions and 5 deletions

View File

@ -71,7 +71,7 @@ def launch_executor():
executor_v2.register_membership()
try:
executor_server.run()
executor_server.run(executor='threading')
except (KeyboardInterrupt, SystemExit):
pass
finally:
@ -100,6 +100,10 @@ def launch_engine():
engine_v2.register_membership()
try:
# Note(ddeja): Engine needs to be run in default (blocking) mode
# since using another mode may lead to deadlock.
# See https://review.openstack.org/#/c/356343/
# for more info.
engine_server.run()
except (KeyboardInterrupt, SystemExit):
pass

View File

@ -70,7 +70,7 @@ class RPCServer(object):
raise NotImplementedError
@abc.abstractmethod
def run(self):
def run(self, executor='blocking'):
"""Runs the RPC server.
"""

View File

@ -54,7 +54,7 @@ class KombuRPCServer(rpc_base.RPCServer, kombu_base.Base):
"""Return whether server is running."""
return self._running.is_set()
def run(self):
def run(self, executor='blocking'):
"""Start the server."""
self.conn = self._make_connection(
self.host,

View File

@ -38,7 +38,7 @@ class OsloRPCServer(rpc_base.RPCServer):
def register_endpoint(self, endpoint):
self.endpoints.append(endpoint)
def run(self):
def run(self, executor='blocking'):
target = messaging.Target(
topic=self.topic,
server=self.server_id
@ -48,7 +48,7 @@ class OsloRPCServer(rpc_base.RPCServer):
rpc.get_transport(),
target,
self.endpoints,
executor='blocking',
executor=executor,
serializer=ctx.RpcContextSerializer(ctx.JsonPayloadSerializer())
)