From cca13bb3db944df797b4fb518070b33278701a51 Mon Sep 17 00:00:00 2001 From: Dawid Deja Date: Wed, 21 Sep 2016 15:09:57 +0200 Subject: [PATCH] Fix for timeouting actions on run-action Change-Id: I2aaed3c431134312942ab71ea8ad95f9b8529234 Partial-Bug: #1624284 --- mistral/cmd/launch.py | 6 +++++- mistral/engine/rpc_backend/base.py | 2 +- mistral/engine/rpc_backend/kombu/kombu_server.py | 2 +- mistral/engine/rpc_backend/oslo/oslo_server.py | 4 ++-- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/mistral/cmd/launch.py b/mistral/cmd/launch.py index ce5134701..c5ab76d64 100644 --- a/mistral/cmd/launch.py +++ b/mistral/cmd/launch.py @@ -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 diff --git a/mistral/engine/rpc_backend/base.py b/mistral/engine/rpc_backend/base.py index e8ab0f174..a065e967a 100644 --- a/mistral/engine/rpc_backend/base.py +++ b/mistral/engine/rpc_backend/base.py @@ -70,7 +70,7 @@ class RPCServer(object): raise NotImplementedError @abc.abstractmethod - def run(self): + def run(self, executor='blocking'): """Runs the RPC server. """ diff --git a/mistral/engine/rpc_backend/kombu/kombu_server.py b/mistral/engine/rpc_backend/kombu/kombu_server.py index 481bf0bc7..c4c03c7a0 100644 --- a/mistral/engine/rpc_backend/kombu/kombu_server.py +++ b/mistral/engine/rpc_backend/kombu/kombu_server.py @@ -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, diff --git a/mistral/engine/rpc_backend/oslo/oslo_server.py b/mistral/engine/rpc_backend/oslo/oslo_server.py index c3e54212e..70ee46cfe 100644 --- a/mistral/engine/rpc_backend/oslo/oslo_server.py +++ b/mistral/engine/rpc_backend/oslo/oslo_server.py @@ -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()) )