]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commitdiff
Fix 401 from auth_token middleware
authorVishvananda Ishaya <vishvananda@gmail.com>
Wed, 7 Nov 2012 04:12:00 +0000 (20:12 -0800)
committerVishvananda Ishaya <vishvananda@gmail.com>
Wed, 7 Nov 2012 04:17:12 +0000 (20:17 -0800)
The openssl popen call to verify the token returns an error code
of 2 when a file doesn't exist. Normally this is caught and the
relevant file is downloaded, but monkeypatching os causes this
error code to be eaten and cinder to return a 401. Note that this
is likely a race condition that depends on exactly when greenthreads
are switching that is causing the return code from Popen to get
overwritten.

It is possible that this is exposing an underlying bug in eventlet
but the workaround is simply to make sure that we don't monkeypatch
os.

Fixes bug 1075838

Change-Id: I69ba75136e32e95c6fdf108f0c4fe21a5e3bdbe6

bin/cinder-all
bin/cinder-api
bin/cinder-scheduler
bin/cinder-volume

index e3c74eff8c412e41b5ddaf4a185f06d550a46bfd..17cd5db7876e5e6ebe9a87515c57d478ac046870 100755 (executable)
@@ -28,7 +28,7 @@ continue attempting to launch the rest of the services.
 """
 
 import eventlet
-eventlet.monkey_patch()
+eventlet.monkey_patch(os=False)
 
 import os
 import sys
index 33d389fac0aff249f81e71c6e4deb59ae8bf16bc..375c504a9a88450c748d9493f3261a2cd027470a 100755 (executable)
@@ -20,7 +20,7 @@
 """Starter script for Cinder OS API."""
 
 import eventlet
-eventlet.monkey_patch()
+eventlet.monkey_patch(os=False)
 
 import os
 import sys
index 33015b3cad81065a8bc454eb367f28b7aed27af3..e473ab7163eef9cbd2e3870e7151c7231bf74895 100755 (executable)
@@ -20,7 +20,7 @@
 """Starter script for Cinder Scheduler."""
 
 import eventlet
-eventlet.monkey_patch()
+eventlet.monkey_patch(os=False)
 
 import gettext
 import os
index 47db9518aba289ad036ac6395b8b085c73020e7f..8fa6134136f2b7dc5bf5db4dbd7652497285b90f 100755 (executable)
@@ -20,7 +20,7 @@
 """Starter script for Cinder Volume."""
 
 import eventlet
-eventlet.monkey_patch()
+eventlet.monkey_patch(os=False)
 
 import os
 import sys