Commit 6fa58338 authored by Mitsuhiro Tanino's avatar Mitsuhiro Tanino

Update comments for getting and removing loopback device at iSCSI,FC,RBD

This PR add comments for the background why plugin gets loopback device and removes loopback device even if operation_generator has same functionality.
parent 20f27a77
...@@ -348,6 +348,11 @@ func (util *FCUtil) DetachBlockFCDisk(c fcDiskUnmapper, mapPath, devicePath stri ...@@ -348,6 +348,11 @@ func (util *FCUtil) DetachBlockFCDisk(c fcDiskUnmapper, mapPath, devicePath stri
glog.V(4).Infof("fc: find destination device path from symlink: %v", dstPath) glog.V(4).Infof("fc: find destination device path from symlink: %v", dstPath)
// Get loopback device which takes fd lock for device beofore detaching a volume from node. // Get loopback device which takes fd lock for device beofore detaching a volume from node.
// TODO: This is a workaround for issue #54108
// Currently local attach plugins such as FC, iSCSI, RBD can't obtain devicePath during
// GenerateUnmapDeviceFunc() in operation_generator. As a result, these plugins fail to get
// and remove loopback device then it will be remained on kubelet node. To avoid the problem,
// local attach plugins needs to remove loopback device during TearDownDevice().
var devices []string var devices []string
blkUtil := volumeutil.NewBlockVolumePathHandler() blkUtil := volumeutil.NewBlockVolumePathHandler()
dm := c.deviceUtil.FindMultipathDeviceForDevice(dstPath) dm := c.deviceUtil.FindMultipathDeviceForDevice(dstPath)
......
...@@ -512,8 +512,12 @@ func (util *ISCSIUtil) DetachBlockISCSIDisk(c iscsiDiskUnmapper, mapPath string) ...@@ -512,8 +512,12 @@ func (util *ISCSIUtil) DetachBlockISCSIDisk(c iscsiDiskUnmapper, mapPath string)
if mappedDevicePath := c.deviceUtil.FindMultipathDeviceForDevice(devicePath); mappedDevicePath != "" { if mappedDevicePath := c.deviceUtil.FindMultipathDeviceForDevice(devicePath); mappedDevicePath != "" {
devicePath = mappedDevicePath devicePath = mappedDevicePath
} }
// Get loopback device which takes fd lock for devicePath before // Get loopback device which takes fd lock for devicePath before detaching a volume from node.
// detaching a volume from node. // TODO: This is a workaround for issue #54108
// Currently local attach plugins such as FC, iSCSI, RBD can't obtain devicePath during
// GenerateUnmapDeviceFunc() in operation_generator. As a result, these plugins fail to get
// and remove loopback device then it will be remained on kubelet node. To avoid the problem,
// local attach plugins needs to remove loopback device during TearDownDevice().
blkUtil := volumeutil.NewBlockVolumePathHandler() blkUtil := volumeutil.NewBlockVolumePathHandler()
loop, err := volumeutil.BlockVolumePathHandler.GetLoopDevice(blkUtil, devicePath) loop, err := volumeutil.BlockVolumePathHandler.GetLoopDevice(blkUtil, devicePath)
if err != nil { if err != nil {
......
...@@ -921,6 +921,12 @@ func (rbd *rbdDiskUnmapper) TearDownDevice(mapPath, _ string) error { ...@@ -921,6 +921,12 @@ func (rbd *rbdDiskUnmapper) TearDownDevice(mapPath, _ string) error {
if err != nil { if err != nil {
return fmt.Errorf("rbd: failed to get loopback for device: %v, err: %v", device, err) return fmt.Errorf("rbd: failed to get loopback for device: %v, err: %v", device, err)
} }
// Get loopback device which takes fd lock for device beofore detaching a volume from node.
// TODO: This is a workaround for issue #54108
// Currently local attach plugins such as FC, iSCSI, RBD can't obtain devicePath during
// GenerateUnmapDeviceFunc() in operation_generator. As a result, these plugins fail to get
// and remove loopback device then it will be remained on kubelet node. To avoid the problem,
// local attach plugins needs to remove loopback device during TearDownDevice().
blkUtil := volutil.NewBlockVolumePathHandler() blkUtil := volutil.NewBlockVolumePathHandler()
loop, err := volutil.BlockVolumePathHandler.GetLoopDevice(blkUtil, device) loop, err := volutil.BlockVolumePathHandler.GetLoopDevice(blkUtil, device)
if err != nil { if err != nil {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment