Reviewed: https://review.opendev.org/c/openstack/nova/+/932931 Committed: https://opendev.org/openstack/nova/commit/9db3eba8133f4f643bc4a748460a97434fa91f78 Submitter: "Zuul (22348)" Branch: master
commit 9db3eba8133f4f643bc4a748460a97434fa91f78 Author: Sean Mooney <[email protected]> Date: Mon Oct 21 20:50:20 2024 +0100 Fix detaching devices by alias with mdevs This change fixes the get_device_by_alias function to properly handle devices that do not have an alias in the domain xml. By definition if a device does not have an alias it can't match a given alias, so this change adds a hasattr check to ensure we do not attempt to check the alias if it's not defined. This eliminates this entire class of bugs for all devices instead of just fixing it for a specific class. Related-Bug: #1942345 Closes-Bug: #2074219 Change-Id: If417a43ea252647618e50391b63333f6b68bdfec ** 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/2074219 Title: Failed to detach volume AttributeError: 'LibvirtConfigGuestHostdevMDEV' object has no attribute 'alias' Status in OpenStack Compute (nova): Fix Released Bug description: Similar to https://bugs.launchpad.net/nova/+bug/1942345 lack of alias handling for LibvirtConfigGuestHostdevMDEV causes volume detach to fail following an upgrade to Caracal. 2024-07-22 14:07:41.931 2455748 ERROR nova.virt.block_device [None req-fe679559-73ae-41f5-9bf7-346e998345b4 1405cdbc6158472e9e358a772965d4d8 55d7efb46dd945a2b86f7ce8aa657e1a - - 863ca4dddb2f43 d8a8919758eccbc23a 863ca4dddb2f43d8a8919758eccbc23a] [instance: effa9902-ffdf-4f32-b3b8-a3afa76a2173] Failed to detach volume 2e394be5-b166-43d0-abe9-2b6f3eb07dbd from /dev/sdb: AttributeError : 'LibvirtConfigGuestHostdevMDEV' object has no attribute 'alias' 2024-07-22 14:07:41.931 2455748 ERROR nova.virt.block_device [instance: effa9902-ffdf-4f32-b3b8-a3afa76a2173] Traceback (most recent call last): 2024-07-22 14:07:41.931 2455748 ERROR nova.virt.block_device [instance: effa9902-ffdf-4f32-b3b8-a3afa76a2173] File "/usr/lib/python3/dist-packages/nova/virt/block_device.py", line 413, in dr iver_detach 2024-07-22 14:07:41.931 2455748 ERROR nova.virt.block_device [instance: effa9902-ffdf-4f32-b3b8-a3afa76a2173] virt_driver.detach_volume(context, connection_info, instance, mp, 2024-07-22 14:07:41.931 2455748 ERROR nova.virt.block_device [instance: effa9902-ffdf-4f32-b3b8-a3afa76a2173] File "/usr/lib/python3/dist-packages/nova/virt/libvirt/driver.py", line 2831, in detach_volume 2024-07-22 14:07:41.931 2455748 ERROR nova.virt.block_device [instance: effa9902-ffdf-4f32-b3b8-a3afa76a2173] self._detach_with_retry( 2024-07-22 14:07:41.931 2455748 ERROR nova.virt.block_device [instance: effa9902-ffdf-4f32-b3b8-a3afa76a2173] File "/usr/lib/python3/dist-packages/nova/virt/libvirt/driver.py", line 2540, in _detach_with_retry 2024-07-22 14:07:41.931 2455748 ERROR nova.virt.block_device [instance: effa9902-ffdf-4f32-b3b8-a3afa76a2173] self._detach_from_live_with_retry( 2024-07-22 14:07:41.931 2455748 ERROR nova.virt.block_device [instance: effa9902-ffdf-4f32-b3b8-a3afa76a2173] File "/usr/lib/python3/dist-packages/nova/virt/libvirt/driver.py", line 2600, in _detach_from_live_with_retry 2024-07-22 14:07:41.931 2455748 ERROR nova.virt.block_device [instance: effa9902-ffdf-4f32-b3b8-a3afa76a2173] live_dev = get_device_conf_func() 2024-07-22 14:07:41.931 2455748 ERROR nova.virt.block_device [instance: effa9902-ffdf-4f32-b3b8-a3afa76a2173] File "/usr/lib/python3/dist-packages/nova/virt/libvirt/driver.py", line 2799, in _get_guest_disk_device 2024-07-22 14:07:41.931 2455748 ERROR nova.virt.block_device [instance: effa9902-ffdf-4f32-b3b8-a3afa76a2173] dev = guest.get_device_by_alias( 2024-07-22 14:07:41.931 2455748 ERROR nova.virt.block_device [instance: effa9902-ffdf-4f32-b3b8-a3afa76a2173] File "/usr/lib/python3/dist-packages/nova/virt/libvirt/guest.py", line 420, in g et_device_by_alias 2024-07-22 14:07:41.931 2455748 ERROR nova.virt.block_device [instance: effa9902-ffdf-4f32-b3b8-a3afa76a2173] if dev.alias == devalias: 2024-07-22 14:07:41.931 2455748 ERROR nova.virt.block_device [instance: effa9902-ffdf-4f32-b3b8-a3afa76a2173] AttributeError: 'LibvirtConfigGuestHostdevMDEV' object has no attribute 'alias' 2024-07-22 14:07:41.931 2455748 ERROR nova.virt.block_device [instance: effa9902-ffdf-4f32-b3b8-a3afa76a2173] To manage notifications about this bug go to: https://bugs.launchpad.net/nova/+bug/2074219/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

