Premature volume connection termination with LVM/iSCSI multiattached volumes when using different mountpoints
Bug #1825957 reported by
Lee Yarwood
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Cinder |
Fix Released
|
High
|
Lee Yarwood |
Bug Description
This was uncovered downstream and is a regression introduced by the fix to bug #1786327 where we started to compare the entire provided connector dict to that stored against each attachment. This fails when the mountpoints stored within each connector dict differ:
https:/
Easily reproducible with the following steps:
- Create two instances on the same compute.
- Attach a multi-attach volume to both using different mountpoints within the instance.
- Detach the volume from one of the instances.
- Confirm that the underlying volume connection has been removed from the host.
Changed in cinder: | |
assignee: | nobody → Lee Yarwood (lyarwood) |
status: | New → In Progress |
Changed in cinder: | |
importance: | Undecided → High |
To post a comment you must log in.
Reviewed: https:/ /review. opendev. org/653837 /git.openstack. org/cgit/ openstack/ cinder/ commit/ ?id=c1388ce1c05 f3e3e53210d52bc 2efafbe191135d
Committed: https:/
Submitter: Zuul
Branch: master
commit c1388ce1c05f3e3 e53210d52bc2efa fbe191135d
Author: Lee Yarwood <email address hidden>
Date: Thu Apr 18 20:17:54 2019 +0100
lvm: Only use initiators when comparing connector dicts
Ib5aa1b7578 f7d3200185566ff 5f8634dd519d020 previously fixed the premature
termination of multi attached iSCSI/LVM volumes by comparing the
provided connector dict against that stored with any remaining active
attachments. Only allowing the termination to proceed if a single active
attachment remained using the provided connector.
However this check fails if two instances on the same host are connected 327ccc7d1140053 bccaf7e1ad7 and 7a2e7707b2b7e27 d26eb7a2c948a82 to workaround differences
to the same multi attach volume using different mountpoints as these are
now stored within the connector. This behaviour was introduced during
Queens by If3afe8d8bd6b8c
I11ba269c3f
between the cinderv2 and cinderv3 APIs.
This change corrects this by only comparing the initiator key of the
connectors ensuring terminate connection is only called when a single
attachment remains on a given host using a specific initiator.
Closes-Bug: #1825957 2fe24e4027e84e5 6a001e1b2b8
Change-Id: Icabc4a67d3f546