← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1374508] Re: Mismatch happens between BDM and domain XML If instance does not respond to ACPI hotplug during detach/attach.

 

Reviewed:  https://review.openstack.org/227851
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=3a3fb3cfb2c41ad182545e47649ff12a4f3a743e
Submitter: Jenkins
Branch:    master

commit 3a3fb3cfb2c41ad182545e47649ff12a4f3a743e
Author: Ryan McNair <rdmcnair@xxxxxxxxxx>
Date:   Thu Sep 24 22:20:23 2015 +0000

    Add retry logic for detaching device using LibVirt
    
    Add retry logic for removing a disk device from the LibVirt
    guest domain XML. This is needed because immediately after a guest
    reboot, libvirtmod.virDomainDetachDeviceFlags() will silently fail
    to remove the mapping from the guest domain. The async retry
    behavior is done in Guest and is generic so it can be re-used by any other
    detaches which hit this same race condition.
    
    Change-Id: I983f80822a5c210929f33e1aa348a0fef91e890b
    Closes-Bug: #1374508


** 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/1374508

Title:
  Mismatch happens between BDM and domain XML If instance does not
  respond to ACPI hotplug during detach/attach.

Status in OpenStack Compute (nova):
  Fix Released

Bug description:
  tempest.api.compute.servers.test_server_rescue_negative:ServerRescueNegativeTestJSON.test_rescued_vm_detach_volume

  This test passes however it fails to properly cleanup after itself -
  the detach completes but without running the necessary iscsiadm
  commands.

  In nova.virt.libvirt.volume.LibvirtISCSIVolumeDriver.disconnect_volume
  the list returned by self.connection._get_all_block_devices includes
  the host_device which means that self._disconnect_from_iscsi_portal is
  never run.

  
  You can see evidence of this in /etc/iscsi/nodes as well as errors logged in /var/log/syslog

  I'm guessing there is a race between the unrescue and the detach
  within libvirt. In
  nova.virt.libvirt.driver.LibvirtDriver.detach_volume if I put in a
  sleep before virt_dom.detachDeviceFlags(xml, flags) the detach appears
  to work properly however if I sleep after that line it does not appear
  to have any effect.

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1374508/+subscriptions


References