[Openstack] openstack on RHEL 6.1

David Robinson zxvdr.au at gmail.com
Thu May 26 00:22:37 UTC 2011


Hi All,

Several people have reported on IRC that they can't get openstack
working on RHEL 6.1. Starting the openstack-nova-network service (and
various others) causes this traceback:

(nova): TRACE:   File "/usr/lib64/python2.6/subprocess.py", line 725,
in communicate
(nova): TRACE:     stdout, stderr = self._communicate(input, endtime)
(nova): TRACE:   File "/usr/lib64/python2.6/subprocess.py", line 1322,
in _communicate
(nova): TRACE:     self.wait(timeout=self._remaining_time(endtime))
(nova): TRACE: TypeError: wait() got an unexpected keyword argument 'timeout'

Red Hat have backported the 'timeout' feature for subprocess.Popen to
Python-2.6.6 in RHEL 6.1. At first glance it looks like they've broken
subprocess but infact they haven't - its Eventlet that's causing the
problem because its 'wait' function doesn't expect the timeout
argument.

I've reported the problem upstream here:

https://bitbucket.org/which_linden/eventlet/issue/89/add-a-timeout-argument-to-subprocesspopen

The patch below fixed the problem for me:

--- /usr/lib/python2.6/site-packages/eventlet/green/subprocess.py.orig	2011-05-25
23:31:34.597271402 +0000
+++ /usr/lib/python2.6/site-packages/eventlet/green/subprocess.py	2011-05-25
23:33:24.055602468 +0000
@@ -32,7 +32,7 @@
                     setattr(self, attr, wrapped_pipe)
         __init__.__doc__ = subprocess_orig.Popen.__init__.__doc__

-    def wait(self, check_interval=0.01):
+    def wait(self, check_interval=0.01, timeout=None):
         # Instead of a blocking OS call, this version of wait() uses logic
         # borrowed from the eventlet 0.2 processes.Process.wait() method.
         try:

--
Dave




More information about the Openstack mailing list