yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #61865
[Bug 1581230] Re: Nova should not inspect cinder volume state during attach
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 <ildiko.vancsa@xxxxxxxxxxxx>
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
References