kubernetes/pkg/volume/util
Kubernetes Submit Queue 6a9a93d469 Merge pull request #32242 from jingxu97/bug-wrongvolume-9-2
Automatic merge from submit-queue

Fix race condition in updating attached volume between master and node

This PR tries to fix issue #29324. The cause of this issue is that a race
condition happens when marking volumes as attached for node status. This
PR tries to clean up the logic of when and where to mark volumes as
attached/detached. Basically the workflow as follows,
1. When volume is attached sucessfully, the volume and node info is
added into nodesToUpdateStatusFor to mark the volume as attached to the
node.
2. When detach request comes in, it will check whether it is safe to
detach now. If the check passes, remove the volume from volumesToReportAsAttached
to indicate the volume is no longer considered as attached now.
Afterwards, reconciler tries to update node status and trigger detach
operation. If any of these operation fails, the volume is added back to
the volumesToReportAsAttached list showing that it is still attached.

These steps should make sure that kubelet get the right (might be
outdated) information about which volume is attached or not. It also
garantees that if detach operation is pending, kubelet should not
trigger any mount operations.
2016-09-12 15:29:38 -07:00
..
nestedpendingoperations This change supports robust kubelet volume cleanup 2016-08-15 11:29:15 -07:00
operationexecutor Fix race condition in updating attached volume between master and node 2016-09-12 13:51:08 -07:00
types Merge branch 'master' into fix-typos 2016-07-04 11:20:47 +08:00
volumehelper This change supports robust kubelet volume cleanup 2016-08-15 11:29:15 -07:00
atomic_writer_test.go Add mode permission bits to configmap, secrets and downwardAPI 2016-08-17 14:44:41 -04:00
atomic_writer.go Add mode permission bits to configmap, secrets and downwardAPI 2016-08-17 14:44:41 -04:00
device_util_linux_test.go fix go vet errors 2016-08-10 16:45:41 -07:00
device_util_linux.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
device_util_unsupported.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
device_util.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
doc.go Use Go canonical import paths 2016-07-16 13:48:21 -04:00
fs_unsupported.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
fs.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
io_util.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
util.go review feedbacks 2016-08-25 15:32:26 -04:00