yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #78679
[Bug 1830438] Re: Hard deleting instance does not take into account soft-deleted referential constraints
Reviewed: https://review.opendev.org/661398
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=0b92c7e741b5abb1df70cc1d3bb8f0d1989cf2f5
Submitter: Zuul
Branch: master
commit 0b92c7e741b5abb1df70cc1d3bb8f0d1989cf2f5
Author: Matt Riedemann <mriedem.os@xxxxxxxxx>
Date: Fri May 24 17:08:20 2019 -0400
Fix hard-delete of instance with soft-deleted referential constraints
When hard-deleting an instance we first delete related records
but the code was not taking into account soft-deleted related
records which will result in the instance delete failing due to
a referential constraint because soft-deleted records are not
really deleted when it comes to table constraints.
This fixes the issue by simply passing read_deleted='yes' to the
related record model query in the hard delete path.
The related unit test is updated to cover this scenario and a
typo in that same test is also fixed here.
Change-Id: I9fc5a9cc40ceffc450c1fde1df7fb36581e9cc94
Closes-Bug: #1830438
** Changed in: nova
Status: In Progress => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1830438
Title:
Hard deleting instance does not take into account soft-deleted
referential constraints
Status in OpenStack Compute (nova):
Fix Released
Bug description:
The instance hard delete code is new in Train but has a bug noted
here:
https://review.opendev.org/#/c/570202/8/nova/db/sqlalchemy/api.py@1804
The hard delete of the instance can fail if there are related soft-
deleted records (like detached volumes [bdms]), because I hit this in
a gate run of the cross-cell resize stuff:
http://paste.openstack.org/show/752057/
'Cannot delete or update a parent row: a foreign key constraint fails
(`nova_cell2`.`block_device_mapping`, CONSTRAINT
`block_device_mapping_instance_uuid_fkey` FOREIGN KEY
(`instance_uuid`) REFERENCES `instances` (`uuid`))') [SQL: 'DELETE
FROM instances WHERE instances.uuid = %(uuid_1)s'] [parameters:
{'uuid_1': '4b8a12c4-e28a-49cc-a681-236c1e8a174c'}]
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1830438/+subscriptions
References