vmware-archive / vsphere-storage-for-docker

vSphere Storage for Docker
https://vmware.github.io/vsphere-storage-for-docker
Apache License 2.0
251 stars 95 forks source link

Attempting to connect to the same volume on two vms will freeze the second vm #960

Closed ChrisStuntz closed 7 years ago

ChrisStuntz commented 7 years ago

Environment Details: 4 vms, 2 VMWare hosts. Driver version 0.11.2.

Steps to Reproduce:

  1. Create a new docker volume
  2. Make sure the volume exists on both VMWare hosts
  3. Connect to the volume from multiple vms

Expected Result: The first docker run will successfully complete and mount the volume. All consecutive attempts will timeout and throw an error.

Actual Result: The first docker run will successfully complete and mount the volume. All consecutive attempts will soft lock the vm until the first docker container is exited.

Triage: VM 1:

core@dcos-lab-agent-1 ~ $ docker volume create --driver=vmdk --name=TestVolume -o size=5gb
TestVolume
core@dcos-lab-agent-1 ~ $ docker volume ls
DRIVER              VOLUME NAME
vmdk                TestVolume@nfs-sdd-z1-04
vmdk                demo-voting-app-pg-data-labgen01@nfs-sdd-z1-04
core@dcos-lab-agent-1 ~ $ docker run --rm -it -v TestVolume:/mnt/testvol busybox
Unable to find image 'busybox:latest' locally
latest: Pulling from library/busybox

4b0bc1c4050b: Pull complete 
Digest: sha256:817a12c32a39bbe394944ba49de563e085f1d3c5266eb8e9723256bc4448680e
Status: Downloaded newer image for busybox:latest
/ # 

VM 2:

core@dcos-lab-agent-2 ~ $ docker volume ls
DRIVER              VOLUME NAME
local               1278f99854586c2759b7aa434f75cd51e9951fed2b0cc9288d5e468567c0f51f
local               2eeb8b03abfae505a19ada88dced801814c5d96309141e552e41d13408fdc729
local               85ded4466a5826797b36aa490a8e931ab219f5c66436af4d8fd8d4ba60fdb501
local               9d4952217beee30159ea914d9f49c410db80bf159a117a7b4fac1147d3a35868
vmdk                TestVolume@nfs-sdd-z1-04
vmdk                demo-voting-app-pg-data-labgen01@nfs-sdd-z1-04
local               e0049e8c01a8b05cf8982aec0b23b17c1fe96d97dcab0875d54d1c9b3c3bb542
local               e36953d104fba56b1693ce9a32cb1e34f5d6c37206dee416e22e95fc4967f006
local               f2630e7f30b2d72eea900535b0a7494fd10142eaaae5bd2d060cd94a3a2af474
core@dcos-lab-agent-2 ~ $ docker run --rm -it -v TestVolume:/mnt/testvol busybox
Unable to find image 'busybox:latest' locally
latest: Pulling from library/busybox

4b0bc1c4050b: Pull complete 
Digest: sha256:817a12c32a39bbe394944ba49de563e085f1d3c5266eb8e9723256bc4448680e
Status: Downloaded newer image for busybox:latest
<soft lock>
ChrisStuntz commented 7 years ago

This was the initial behavior, but after more testing, the driver is timing out.

pdhamdhere commented 7 years ago

Thanks @Kronia1 for giving this a try. We would love to hear more about your experience and use case. Feel free to reach out to us @ containers@vmware.com

@shuklanirdesh82 Adding regression-test-needed label for adding test with NFS backend. NFS locks could bubble up interesting behaviors in our code.

shuklanirdesh82 commented 7 years ago

Adding regression-test-needed label for adding test with NFS backend. NFS locks could bubble up interesting behaviors in our code.

Sure, we will enhance the testbed coverage with NFS backend.