Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.
Sign upisDeviceOpened check for cinder could use invalid device path #68479
Comments
k8s-ci-robot
assigned
gnufied
Sep 10, 2018
k8s-ci-robot
added
sig/storage
sig/openstack
labels
Sep 10, 2018
tossmilestone
referenced this issue
Sep 11, 2018
Open
Add kube-scheduler secure options usage #10269
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
gnufied
Sep 14, 2018
Member
Actually this does not affect version 1.10 onwards. Not sure if 1.9 is still supported. I think I will close this for now.
/close
|
Actually this does not affect version 1.10 onwards. Not sure if 1.9 is still supported. I think I will close this for now. /close |
gnufied
closed this
Sep 14, 2018
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
gnufied
Sep 14, 2018
Member
I just noticed that 1.9 is still supported and hence it is probably worth fixing there for now.
|
I just noticed that 1.9 is still supported and hence it is probably worth fixing there for now. |
gnufied
reopened this
Sep 14, 2018
added a commit
to gnufied/kubernetes
that referenced
this issue
Sep 14, 2018
gnufied
referenced this issue
Sep 14, 2018
Merged
Make sure that we update actual state of world with real device path #68674
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
|
How come the check can "sometimes" use invalid device path? |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
gnufied
Sep 14, 2018
Member
@msau42 So on Cinder for example - Attach call would return something like /dev/sdb as attach device path. But if you see the linked PR(#33270), WaitForAttach will do a /dev/disk/by-id and use that device path for global mount. In general it is always a good idea to use device path returned by WaitForAttach as single source of truth.
This applies to something like EBS with NVMe too where device is discovered via WaitForAttach call (but nvme disks aren't directly affected by this bug because returned device path on EBS is bogus).
|
@msau42 So on Cinder for example - This applies to something like EBS with NVMe too where device is discovered via |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
gnufied
Sep 14, 2018
Member
So on EBS with NVMe for example - isDeviceOpen check will always fail (but still return success) because it will use something like /dev/xvdba as device path which does not actually exist on the node.
|
So on EBS with NVMe for example - |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
msau42
Sep 14, 2018
Member
You said the issue only happens "sometimes". Can you clarify why it only happens occasionally?
|
You said the issue only happens "sometimes". Can you clarify why it only happens occasionally? |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
gnufied
Sep 14, 2018
Member
@msau42 doesn't the linked PR #33270 make it clear?
We can't rely on the device name provided by Cinder, and thus must perform
detection based on the drive serial number (aka It's cinder ID) on the
kubelet itself.
As for why - Cinder sometimes returns wrong device path on AttachDevice call, I don't know. But it happens and we have worked around it.
|
@msau42 doesn't the linked PR #33270 make it clear?
As for why - Cinder sometimes returns wrong device path on |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
|
Fixed by #68674 |
gnufied commentedSep 10, 2018
•
edited
We fixed invalid device path in bunch of places via - #33270 but
isDeviceOpencall still could use invalid device path.That check can sometimes use invalid path and hence can cause UnmountDevice operation to fails even though device has already been unmounted.
/sig storage
/sig openstack
/assign