Fix race condition in ISCSIConnector disconnect_volume
The list of devices returned by driver.get_all_block_devices() will sometimes contain broken symlinks as the SCSI device has been deleted but the udev rule for the symlink has not yet completed. Adding in a check to os.path.exists() will ensure that we will not consider the broken symlinks as an “in use” device. Change-Id: Ibb869e10976f894f9e18e9edec6739c2c3bea68c Closes-Bug: #1375382
This commit is contained in:
parent
f668b347ca
commit
5d22ec17c7
@ -291,7 +291,8 @@ class ISCSIConnector(InitiatorConnector):
|
||||
{'portal': connection_properties['target_portal'],
|
||||
'iqn': connection_properties['target_iqn']})
|
||||
devices = self.driver.get_all_block_devices()
|
||||
devices = [dev for dev in devices if dev.startswith(device_prefix)]
|
||||
devices = [dev for dev in devices if dev.startswith(device_prefix)
|
||||
and os.path.exists(dev)]
|
||||
|
||||
if not devices:
|
||||
self._disconnect_from_iscsi_portal(connection_properties)
|
||||
|
Loading…
x
Reference in New Issue
Block a user