diff --git a/nova/compute/api.py b/nova/compute/api.py index 6594c29981..12bedf28b6 100644 --- a/nova/compute/api.py +++ b/nova/compute/api.py @@ -2907,6 +2907,16 @@ class API(base.Base): LOG.info('Skipping quiescing instance: %(reason)s.', {'reason': err}, instance=instance) + # NOTE(tasker): discovered that an uncaught exception could occur + # after the instance has been frozen. catch and thaw. + except Exception: + with excutils.save_and_reraise_exception(): + LOG.error("Uncaught exception dusing quiesce of instance", + context=context, instance=instance) + LOG.info("Unquiescing instance to ensure thawed after " + "quiesce failure", instance=instance) + self.compute_rpcapi.unquiesce_instance(context, instance, + mapping=None) @wrap_instance_event(prefix='api') def snapshot_instance(self, context, instance, bdms):