From 273d8765115f0936d24549db8698dbe7e8d2ec1a Mon Sep 17 00:00:00 2001 From: scott-dangelo Date: Fri, 22 Nov 2013 16:28:07 +0000 Subject: [PATCH] Add greenthread.sleep() to parent wait() Add an eventlet.greenthread.sleep() to wait() to keep cinder-volume parent from looping after catching SIGTERM and hogging the CPU. This was already added to the running state but is missing from the SIGTERM caught state when the parent waits to reap the child. Change-Id: Ia871e31db5bf9ec4e86f926f8f6c4f0f4ecb7925 Closes-Bug: #1254089 --- cinder/service.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cinder/service.py b/cinder/service.py index 73e3027ea01..40a51b395ce 100644 --- a/cinder/service.py +++ b/cinder/service.py @@ -323,7 +323,10 @@ class ProcessLauncher(object): if self.children: LOG.info(_('Waiting on %d children to exit'), len(self.children)) while self.children: - self._wait_child() + wrap = self._wait_child() + if not wrap: + eventlet.greenthread.sleep(.01) + continue class Service(object):