22012360c4
If a host has multiple instance with the same shared multi attach volume and you delete them in parallel nova need to correctly clean up the volume connection on the host when the last instance is removed. currently we do not have a volume level lock to guard the critical section that determins if the current disconnect is removing the final usage of the volume. This can lead to leaking the volume or other issues as noted in bug: #2048837 This change introduces a FairLockGuard to ensure we acquire and release the locks in a fair and orderd manner. The FairLockGuard is used to lock the server delete with one lock per multi attach volume. This will ensure that disconnects of diffrent volumes can happen in parallel but if we are disconnecting the same volume in multiple greenthread concurrently they will be serialised. Assisted-By: Cursor Auto Closes-Bug: #2048837 Change-Id: I67e10cace451259127a5d7da8fbdf7739afe3e51 Signed-off-by: Sean Mooney <work@seanmooney.info>