diff --git a/heat/engine/service.py b/heat/engine/service.py index 4bdb8ff2e7..6ad49e25bd 100644 --- a/heat/engine/service.py +++ b/heat/engine/service.py @@ -420,7 +420,7 @@ class EngineService(service.Service): def stop(self): self._stop_rpc_server() - if cfg.CONF.convergence_engine: + if cfg.CONF.convergence_engine and self.worker_service: # Stop the WorkerService self.worker_service.stop() diff --git a/heat/engine/worker.py b/heat/engine/worker.py index 7ffe3b464f..5b455337c8 100644 --- a/heat/engine/worker.py +++ b/heat/engine/worker.py @@ -80,6 +80,8 @@ class WorkerService(service.Service): super(WorkerService, self).start() def stop(self): + if self._rpc_server is None: + return # Stop rpc connection at first for preventing new requests LOG.info(_LI("Stopping %(topic)s in engine %(engine)s."), {'topic': self.topic, 'engine': self.engine_id})