Reviewed: https://review.openstack.org/335358 Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=63805735c25a54ad1b9b97e05080c1a6153d8e22 Submitter: Jenkins Branch: master
commit 63805735c25a54ad1b9b97e05080c1a6153d8e22 Author: Ildiko Vancsa <[email protected]> Date: Tue Jun 28 16:05:53 2016 +0200 Remove check_attach This patch finishes to remove the 'check_attach' call from Nova completely. As Cinder already performs the required checks as part of the 'reserve_volume' (os-reserve) call it is unnecessary to check the statemachine in Nova also and it can lead to race conditions. The missing 'reserve_volume' call is added to the BFV flow. In case of build failure the volume will be locked in 'attaching' state until the instance in ERROR state is cleaned up. We also check AZ for each volume attach operation which we haven't done for unshelve. A release note is added to enable 'cross_az_attach' in case the user does not care about AZ. The compute service version had to be bumped as the old computes still perform 'check_attach', which will fail when the API reserves the volume and the volume state moves to 'attaching'. If the computes are not new enough the old check will be called as opposed to 'reserve_volume'. Closes-Bug: #1581230 Change-Id: I3a3caa4c566ecc132aa2699f8c7e5987bbcc863a ** 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/1581230 Title: Nova should not inspect cinder volume state during attach Status in OpenStack Compute (nova): Fix Released Bug description: The Nova API shouldn't be looking at the internal state of a Cinder volume to determine if it can attach. It should simply ask Cinder to reserve the volume. Cinder already has checks during reserve time for checking states. Nova currently fetches a volume from Cinder, then checks to see if the state of the volume is in an appropriate state to attach, and then calls reserve. The problem is 2 fold. 1) Nova shouldn't care about the internal state management of Cinder Volumes. What happens if Cinder adds a new state that Nova doesn't know about? 2) By fetching a volume and checking, and then reserving, there is a race condition introduced. The state of the volume can change between the time the volume is fetched from Cinder and when reserve is called. Nova should simply call reserve volume. To manage notifications about this bug go to: https://bugs.launchpad.net/nova/+bug/1581230/+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

