Evacuate cleanup fails at _delete_allocation_for_moved_instance
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
High
|
Balazs Gibizer | ||
Pike |
Fix Committed
|
High
|
Matt Riedemann |
Bug Description
Description
===========
After an evacuation, when nova-compute is restarted on the source host, the clean up of the old instance on the source host fails. The traceback in nova-compute.log ends with:
2017-10-04 05:32:18.725 5575 ERROR oslo_service.
2017-10-04 05:32:18.725 5575 ERROR oslo_service.
2017-10-04 05:32:18.725 5575 ERROR oslo_service.
2017-10-04 05:32:18.725 5575 ERROR oslo_service.
2017-10-04 05:32:18.725 5575 ERROR oslo_service.
2017-10-04 05:32:18.725 5575 ERROR oslo_service.
2017-10-04 05:32:18.725 5575 ERROR oslo_service.
2017-10-04 05:32:18.725 5575 ERROR oslo_service.
Steps to reproduce
==================
Deploy instance on Host A.
Shut down Host A.
Evacuate instance to Host B.
Turn back on Host A.
Wait for cleanup of old instance allocation to occur
Expected result
===============
Clean up of old instance from Host A is successful
Actual result
=============
Old instance clean up appears to work but there's a traceback in the log and allocation is not cleaned up.
Environment
===========
(pike)nova-
Additional Info:
================
Problem seems to come from this change: https:/
rt = self._get_
rt.delete_
That is called very early in init_host flow to clean up the allocations. The problem is that at this point in the startup the resource tracker's self.compute_node is still None. That makes delete_
cn_uuid = self.compute_
The resource tracker's self.compute_node is actually initialized later on in the startup process via the update_
tags: | added: placement resource-tracker |
This seems like a valid bug. Unfortunately the provided functional test did not catch the reported problem.