From: scott-dangelo Date: Fri, 22 Nov 2013 16:28:07 +0000 (+0000) Subject: Add greenthread.sleep() to parent wait() X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=273d8765115f0936d24549db8698dbe7e8d2ec1a;p=openstack-build%2Fcinder-build.git 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 --- diff --git a/cinder/service.py b/cinder/service.py index 73e3027ea..40a51b395 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):