summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRick Harris <rconradharris@gmail.com>2013-04-02 19:51:39 +0000
committerRick Harris <rconradharris@gmail.com>2013-04-02 19:51:39 +0000
commit25afdbbda8d56c509a4b34e0d6feeaafb2e46e5b (patch)
tree0346632aa05a2751d704f4d46f5e00015cd7ef20
parenta17d03c43f1f118c4a1e16e092cd0a570f0f1694 (diff)
downloadnova-25afdbbda8d56c509a4b34e0d6feeaafb2e46e5b.tar.gz
nova-25afdbbda8d56c509a4b34e0d6feeaafb2e46e5b.tar.xz
nova-25afdbbda8d56c509a4b34e0d6feeaafb2e46e5b.zip
Fix _error_out_instance exception handler
Since Eventlet clears exceptions between greenthread switching, we need to save that exception so it can be re-raised. The _error_out_instance event handler did not wrap the quotas call with the save_and_reraise_exception, so the original exception was lost. Fixes bug 1163552 Change-Id: I69d28917aae1d787351cd800f8996532e5485eb2
-rwxr-xr-xnova/compute/manager.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/nova/compute/manager.py b/nova/compute/manager.py
index 30e33d8e0..775287192 100755
--- a/nova/compute/manager.py
+++ b/nova/compute/manager.py
@@ -3945,8 +3945,8 @@ class ComputeManager(manager.SchedulerDependentManager):
try:
yield
except Exception, error:
- self._quota_rollback(context, reservations)
with excutils.save_and_reraise_exception():
+ self._quota_rollback(context, reservations)
msg = _('%s. Setting instance vm_state to ERROR')
LOG.error(msg % error, instance_uuid=instance_uuid)
self._set_instance_error_state(context, instance_uuid)