From 3d3affc752613f0f12cd25109b1d5be05bfe0c6f Mon Sep 17 00:00:00 2001 From: Peter Feiner Date: Wed, 15 May 2013 14:03:56 -0500 Subject: Ignore lifecycle events for non-existent instances Since event delivery is asynchronous, there's an inherent yet benign race in the event handler querying the database for a deleted instance. Fixes bug #1180501. Change-Id: I8e478fb13bedfc86730018ba849ecc71d4286f0d --- nova/compute/manager.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'nova/compute') diff --git a/nova/compute/manager.py b/nova/compute/manager.py index a242a121d..0c6d4f640 100755 --- a/nova/compute/manager.py +++ b/nova/compute/manager.py @@ -644,7 +644,11 @@ class ComputeManager(manager.SchedulerDependentManager): def handle_events(self, event): if isinstance(event, virtevent.LifecycleEvent): - self.handle_lifecycle_event(event) + try: + self.handle_lifecycle_event(event) + except exception.InstanceNotFound: + LOG.debug(_("Event %s arrived for non-existent instance. The " + "instance was probably deleted.") % event) else: LOG.debug(_("Ignoring event %s") % event) -- cgit